对Python Class之间函数的调用关系详解

yipeiwu_com5年前Python基础

假设有Class A 和 Class B两个类,Class A中定义了a(),Class B中定义了b().

现在我想在Class B中调用 Class A中的函数a()。此处介绍三种调用方法:

方法一:

在Class B中所定义的fuction()中声明Class A的对象a,然后用对象a来调用Class A的函数a().

最后在main中声明Class B的对象b,让b调用该类中的fuction().

#!/usr/bin/env python
# -*- coding: utf-8 -*-
 
class A():
 def __init__(self,parent):
 self.parent = parent
 
 def a(self):
 print 'Class A'
 
 
class B():
 def fuction(self):
 a = A(None)
 a.a()
 
if __name__ == '__main__':
 b = B()
 b.fuction()

方法二:

在Class B的__init__()中将Class A和Class B产生关联,具体方法如下code。

首先在main中声明Class A的对象a,然后将对象a传入到Class B的__init__(self,object)中,这样self.object就指向Class A。

就可以调用Class A中的函数了。

#!/usr/bin/env python
# -*- coding: utf-8 -*-
 
class A():
 def __init__(self,parent):
 self.parent = parent
 
 def a(self):
 print "Class A"
 
class B(object):
 def __init__(self,object):
 self.object = object
 self.object.a()
 
 def b(self):
 print "Class B"
 
if __name__ == '__main__':
 
 a = A(None)
 b = B(a)
 b.b()

方法三:

直接在Class B中声明Class A的对象,该对象是Class B的self.A_object。

#!/usr/bin/env python
# -*- coding: utf-8 -*-
 
class A():
 
 def a(self):
 print "Class A"
 
class B(object):
 def __init__(self):
 self.A_object = A()
 self.A_object.a()
 
 def b(self):
 print "Class B"
 
if __name__ == '__main__':
 
 b = B()
 b.b()

以上这篇对Python Class之间函数的调用关系详解就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持【听图阁-专注于Python设计】。

相关文章

python 实现Flask中返回图片流给前端展示

场景需求:需要在Flask服务器的本地找一张图片返回给前端展示出来。 问题疑点:通常前端的<img>标签只会接受url的形式来展示图片,没试过在返回服务器本地的一张图片给前端...

Python自动化运维之Ansible定义主机与组规则操作详解

Python自动化运维之Ansible定义主机与组规则操作详解

本文实例讲述了Python自动化运维之Ansible定义主机与组规则操作。分享给大家供大家参考,具体如下: 一 点睛 Ansible通过定义好的主机与组规则(Inventory)对匹配的...

python 循环读取txt文档 并转换成csv的方法

如下所示: # -*- coding: utf-8 -*- """ Created on Fri Jul 29 15:49:06 2016 @author: user """ imp...

python字典操作实例详解

本文实例为大家分享了python字典操作实例的具体代码,供大家参考,具体内容如下 #!/usr/bin/env python3 # -*- coding: utf-8 -*- im...

关于Python数据结构中字典的心得

关于Python数据结构中字典的心得

本篇主要介绍:常见的字典方法、如何处理查不到的键、标准库中 dict 类型的变种、散列表的工作原理等。一下是全部内容: 泛映射类型 collections.abc 模块中有 Mappin...