对Python Class之间函数的调用关系详解
假设有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中staticmethod和classmethod的作用与区别
一般来说,要使用某个类的方法,需要先实例化一个对象再调用方法. 而使用@staticmethod或@classmethod,就可以不需要实例化,直接类名.方法名()来调用. 这有利于组织代码,把某些应该属于某个类的函数给放到那个类里去,同时有利于命名空间的整洁. 既然@staticmethod和@classmethod都可以直接类名.方法名()来调用,那他们有什么区别呢 从它们的使用上来看 @staticmethod不需要表示自身对象的self和自身类的cls参数,就跟使用函数一样. @clas
-
基于python中staticmethod和classmethod的区别(详解)
例子 class A(object): def foo(self,x): print "executing foo(%s,%s)"%(self,x) @classmethod def class_foo(cls,x): print "executing class_foo(%s,%s)"%(cls,x) @staticmethod def static_foo(x): print "executing static_foo(%s)"%x a=A(
-
对Python中的@classmethod用法详解
在Python面向对象编程中的类构建中,有时候会遇到@classmethod的用法. 总感觉有这种特殊性说明的用法都是高级用法,在我这个层级的水平中一般是用不到的. 不过还是好奇去查了一下. 大致可以理解为:使用了@classmethod修饰的方法是类专属的,而且是可以通过类名进行调用的.为了能够展示其与一般方法的差异,写一段简单的代码如下: class DemoClass: @classmethod def classPrint(self): print("class method"
-
python @classmethod 的使用场合详解
官方的说法: classmethod(function) 中文说明: classmethod是用来指定一个类的方法为类方法,没有此参数指定的类的方法为实例方法,使用方法如下: class C: @classmethod def f(cls, arg1, arg2, ...): ... 看后之后真是一头雾水.说的啥子东西呢??? 自己到国外的论坛看其他的例子和解释,顿时就很明朗. 下面自己用例子来说明. 看下面的定义的一个时间类: class Data_test(object): day=0 mo
-
python的staticmethod与classmethod实现实例代码
本文源于一时好奇,想要弄清出python的staticmethod()这一builtin方法的实现,查了一些资料(主要是python官方手册了)汇集于此 python在类中,有三种调用method的方法:普通method,staticmethod和classmethod 前两个应该都好理解,classmethod就是在调用这个函数的时候,会把调用对象的class object对象隐式地传进去.咦?这个class object不是一个类型?No,在python里面,class object不像静态
-
对python 中class与变量的使用方法详解
python中的变量定义是很灵活的,很容易搞混淆,特别是对于class的变量的定义,如何定义使用类里的变量是我们维护代码和保证代码稳定性的关键. #!/usr/bin/python #encoding:utf-8 global_variable_1 = 'global_variable' class MyClass(): class_var_1 = 'class_val_1' # define class variable here def __init__(self, param): self
-
对Python中class和instance以及self的用法详解
一. Python 的类和实例 在面向对象中,最重要的概念就是类(class)和实例(instance),类是抽象的模板,而实例是根据类创建出来的一个个具体的 "对象". 就好比,学生是个较为抽象的概念,同时拥有很多属性,可以用一个 Student 类来描述,类中可定义学生的分数.身高等属性,但是没有具体的数值.而实例是类创建的一个个具体的对象, 每一个对象都从类中继承有相同的方法,但是属性值可能不同,如创建一个实例叫 hansry 的学生,其分数为 93,身高为 176,则这个实例拥
-
对Python Class之间函数的调用关系详解
假设有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 -*-
-
Python for循环与getitem的关系详解
这篇文章主要介绍了Python for循环与getitem的关系详解,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下 一个类里面如果由__iter__for循环就是找它取,没有的话就会找__getitem__ 前面一笔看过没有留心具体的执行情况. In [169]: class Foo: ...: def __getitem__(self, pos): ...: print(pos) ...: return range(10)[pos] ...:
-
Python中类的mro与继承关系详解
目录 前言 类 继承 mro 总结 前言 版本: windows 10.0 python 3.8 类 在Python数字比较与类结构中有简略提到类,那么什么是类呢? 在python中定义一个类很简单,使用关键字class就能实现. class Animal: pass 如何使用它,在类结构中称作实例化. animal = Animal() 这样,就有了一个Animal的实例. 继承 类的其中一个特性就是能够继承,把Animal类丰富下,将其作为基类: class Animal: property
-
nodejs中函数的调用实例详解
一.调用本js文件中的函数 var http = require('http'); http.createServer(function (request,response){ response.writeHead(200, {'Contet-Type':'text/html;charset=utf-8'}); if(request.url!=='/favicon.ico'){ funl(response); response.end(''); } }).listen(8000); consol
-
对Python的zip函数妙用,旋转矩阵详解
Python的zip函数 示例1: x = [1, 2, 3] y = [4, 5, 6] z = [7, 8, 9] xyz = zip(x, y, z) print xyz 运行的结果是: [(1, 4, 7), (2, 5, 8), (3, 6, 9)] 从这个结果可以看出zip函数的基本运作方式. 示例2: x = [1, 2, 3] y = [4, 5, 6] z = [7, 8, 9] xyz = zip(x, y, z) u = zip(*xyz) print u 运行的结果是:
-
基于Python中求和函数sum的用法详解
基于Python中求和函数sum的用法详解 今天在看<集体编程智慧>这本书的时候,看到一段Python代码,当时是百思不得其解,总觉得是书中排版出错了,后来去了解了一下sum的用法,看了一些Python大神写的代码后才发现是自己浅薄了!特在此记录一下.书中代码段摘录如下: from math import sqrt def sim_distance(prefs, person1, person2): # 得到shared_items的列表 si = {} for item in prefs[p
-
python内置函数之slice案例详解
英文文档: class slice(stop) class slice(start, stop[, step]) Return a slice object representing the set of indices specified by range(start, stop, step). The start and step arguments default to None. Slice objects have read-only data attributes start, st
-
Python中类的mro与继承关系详解(二)
目录 前言 多重继承 思考片刻 总结 前言 版本: windows 10.0 python 3.8 多重继承 在Python数字比较与类结构中有简略提到类,且在Python中类的mro与继承关系详解稍有解释继承关系,用到一个基类Animal如下: class Animal: property_ = '能够思考' def __init__(self, name, age, value): self.name_ = name self.age_ = age self.val_ = val 再定义Ac
-
Android与JS之间跨平台异步调用实例详解
Android与JS之间跨平台异步调用 为什么突然要搞这个问题呢? 在开发浏览器的时候遇到这个狗血的问题,花了将近1天的时间才想到这个解决方案,Android与JavaScirpt互调. 因为接口是抓取的别人的,所以出现了JS跨域问题,Android闪亮登场搞定了. GIF动画演示 WebView相关设置 WebSettings mWebSettings = getSettings(); mWebSettings.setDefaultTextEncodingName("UTF-8"
-
Python中scatter函数参数及用法详解
最近开始学习Python编程,遇到scatter函数,感觉里面的参数不知道什么意思于是查资料,最后总结如下: 1.scatter函数原型 2.其中散点的形状参数marker如下: 3.其中颜色参数c如下: 4.基本的使用方法如下: #导入必要的模块 import numpy as np import matplotlib.pyplot as plt #产生测试数据 x = np.arange(1,10) y = x fig = plt.figure() ax1 = fig.add_subplot
随机推荐
- iOS实现简单的抽屉效果
- Oracle中PL/SQL中if语句的写法介绍
- python 快速排序代码
- 使用php显示搜索引擎来的关键词
- JavaScript URL参数读取改进版
- Javascript 倒计时源代码.(时.分.秒) 详细注释版
- bootstrap table表格使用方法详解
- c#反射表达式树模糊搜索示例
- JavaMail入门教程之创建邮件(2)
- mysql修改开启允许远程连接的方法
- jQuery实现简单滚动动画效果
- jQuery表格的维护和删除操作
- Linux下给nginx安装waf模块
- Java利用自定义注解、反射实现简单BaseDao实例
- PHP使用file_get_content设置头信息的方法
- C++实现inline hook的原理及应用实例
- 红葡萄酒的饮用方法与注意事项
- xDSL技术及其应用
- 70行Java代码实现深度神经网络算法分享
- python实现微信跳一跳辅助工具步骤详解