【知识点】python中类的相互调用
在 Python 中,类可以相互调用。这意味着一个类可以访问另一个类的方法或属性。下面是几个例子:
模块内部类的调用
在同一个文件内,不同类的相互调用例子如下:
代码
class Car:def __init__(self, make, model):self.make = makeself.model = modelclass Dealership:def __init__(self, name):self.name = nameself.cars = []def add_car(self, make, model):new_car = Car(make, model)self.cars.append(new_car)def show_inventory(self):for car in self.cars:print(car.make, car.model)dealership = Dealership("ABC Motors")
dealership.add_car("Toyota", "Camry")
dealership.add_car("Honda", "Civic")
dealership.show_inventory()
在上面的代码中,Dealership 类调用了 Car 类。它通过创建一个 Car 对象来添加汽车,并通过循环遍历汽车列表来显示汽车的目录。这个例子说明了在 Python 中如何在一个类中调用另一个类。
运行结果
Toyota Camry
Honda Civic
跨模块类的调用
跨文件类的相互调用是指在不同的.py文件中定义的两个或多个类之间的相互调用。
步骤
要实现跨文件类的相互调用,需要遵循如下步骤:
将需要被调用的类定义在一个单独的.py文件中,这个文件称为模块。
在另一个文件中,使用import语句导入该模块。
在当前文件中使用该模块中定义的类时,需要使用模块名加点号进行引用。例如,如果在module.py文件中定义了一个类MyClass,那么在另一个文件中使用该类时可以这样写:module.MyClass()。
实际应用场景:如果您的项目中有很多个类,并且每个类都有很多方法,那么您可以把每个类放到一个单独的模块中,以减少代码的冗余,并使代码结构更清晰易懂。
代码
文件1(module1.py)
class ClassA:def __init__(self):self.name = 'ClassA'def greet(self):return 'Hello from ' + self.name
文件2(module2.py):
from module1 import ClassAclass ClassB:def __init__(self):self.name = 'ClassB'def greet(self):return 'Hello from ' + self.namedef call_class_a(self):a = ClassA()return a.greet()
在程序的主文件中,可以通过下面的方式使用这两个类:
from module2 import ClassBb = ClassB()
print(b.greet())
print(b.call_class_a())
从上面的代码可以看出,ClassB对象通过调用call_class_a方法,获取了ClassA的实例,并调用了它的greet方法。这就是跨文件类的相互调用的一个简单示例。
运行结果
Hello from ClassB
Hello from ClassA
【知识点】python中类的相互调用相关推荐
- python文件调用python文件_自己写的python文件如何相互调用
自己写的python文件如何相互调用?Python中的模块库十分常用,对于常用的模块可以自己动手自定义,但是如何进行调用呢? 模块相互调用 同级目录调用时的两种方法import module prin ...
- python和c学习-学习 Python与C相互调用
缘由 稀里糊涂的,用 Python 或用 C++ Qt都能写点小程序出来.然后对Python + Qt开始有点兴趣:想学PyQt4,想了解PythonQt,也期待PySide的Windows版本.但总 ...
- python模块--如何相互调用自己写的模块
一.模块相互调用同级目录调用时的两种方法 1 import module 2 print(module.add(3,8)) 3 4 from module import add 5 print(add ...
- python编程(python和c相互调用)
[ 声明:版权所有,欢迎转载,请勿用于商业用途. 联系信箱:feixiaoxing @163.com] 通常为了扩展python的功能,我们需要将c库移植到python上面.python和c调用一般分 ...
- python类之间相互调用_python相互调用
广告关闭 腾讯云11.11云上盛惠 ,精选热门产品助力上云,云服务器首年88元起,买的越多返的越多,最高返5000元! python调用perl则不需要系统环境:windows7python版本:2. ...
- 软件测试作业1 -- 关于c++项目中类相互调用的问题与解决
在上学期c++的课程中,老师留了三个大项目和一些小作业,这些项目对于我来说都是很有意义的, 在完成作业的过程中不断的提升编程能力是一件令人高兴的事情,每一次的作业其实都有很多的小问题, 要么在编译出现 ...
- python和c++的相互调用教程
日常工作中会遇到需要python与cpp代码之间的相互调用,工作的应用复杂,都是取决于代码的多少,但是总的方法不变,这里用两个简单例子说明下,有兴趣的筒子可以探讨下~~ 我的测试环境:ubuntu16 ...
- Python实例浅谈之三Python与C/C++相互调用
参考:http://blog.csdn.net/taiyang1987912/article/details/44779719 Python实例浅谈之三Python与C/C++相互调用 二.Pytho ...
- python 函数定义先后是否会影响函数之间的相互调用?(不影响)
# -*- coding: utf-8 -*- """ @File : 201006_测试是否能将被调用函数写在被调用函数之后.py @Time : 2020/1/6 1 ...
最新文章
- 怎样使破解网页的禁止复制黏贴
- struts2和springmvc的区别
- 面试必会系列 - 1.1 Java SE 基础
- sqoop动态分区导入mysql,使用sqoop import从mysql往hive含分区表中导入数据的一些注意事项...
- 单片机中段程序_单片机c语言中的一小段程序解读
- c语言追踪机械腿位置,基于传感器的下肢可穿戴机械腿软件系统设计与实现
- an7062个引脚工作电压_马兰士PM711AV功放电路原理分析
- Rust之字符串,元组,数组,切片,打印优化
- arcpy.SpatialJoin_analysis 空间连接分析
- (转)什么是DevOps?阿里专家为你来解读
- 非华为电脑安装华为电脑管家,实现与手机平板的多屏协同
- vnr光学识别怎么打开_物流仓库安防监控系统安装的作用和功能
- FTP(文件传输协议)
- JavaScript的RSA加密库(cryptico、Node-rsa、Crypto、jsrsasign、JSEncrypt)
- 真香!端午节到来,我用Python画了几个粽子送给女票,女票差点吃了我的电脑...
- android将图片做成视频播放,如何把图片做成视频【图文教程】
- 用Modules优雅地管理你的环境变量
- (初学者视角)二极管和三极管的工作原理
- JavaScript 获取当前日期和三十天以前日期
- 这个650万科学大奖来了!今年颁给谁?