python如何在不同类之间调用方法-Python教程

资源魔 32 0

Python中类与类之间属性以及办法的挪用

class A(object):  #界说一个类
        name='python' #类属性
        def __init__(self): #实例属性
                self.age=18
    def a_print(self):  #实例办法
            print('aaa')
    @classmethod   #类办法
    def b_print(cls):  #cls指代以后的类
            print(cls.__name__)  #猎取以后类名
    @staticmethod   #动态办法
    def c_print():
            print('static')
print(A.name) #挪用类属性
A.b_print() #挪用类办法
# print(A.age) 不成以挪用实例属性
print(A().age)  #匿名实例工具能够挪用实例属性
a_obj=A() # 类工具 能够挪用这个类中一切办法以及属性
print(a_obj.age)
print(a_obj.name)
a_obj=A()       #正在内部天生一个工具
a_obj.num=1000  #对 工具添加一个额定属性,并赋值
def func(a_obj):  #再把这个工具通报到另外一个办法中
        print(a_obj.num) #这个办法中我就能够拿到这个工具,并用这个工具猎取到这个工具额定增加       的数据
func(a_obj)
#能够正在办法中通报数据
#一个类想要挪用另外一个类的办法以及属性,有两种方式
# 1.承继
# 2.把另一个工具通报到这个类中,正在这个类中挪用实例工具
#  把一个类当作是另外一个类的属性,经过属性挪用的形式挪用另外一个类的办法
class B(object):
        def __init__(self):
            self.a_obj=A() #把A工具间接作为B的属性
        def func(self,a_obj):
            print(a_obj.num)
            a_obj.a_print()
b_obj=B()
b_obj.a_obj.a_print()
b_obj.a_obj.b_print()
b_obj=B()
b_obj.func(a_obj)

例:

son.py以及all.py正在同一个文件夹上面,能够经过from son import *或许import son来相互挪用。

能够静态实例化son.py外面的SON类,并且也能够把ALL的实例经过参数通报给SON,从而挪用ALL类的办法。

all.py

from son import *
class ALL():
 def __init__(self):
  self.mSon = SON(self)
 def getAll(self):
  print "=================getall---------------"
  return self.mSon.getSon()
 def getAlltest(self):
  print "=================getAlltest---------------"
Instance = ALL()
Instance.getAll()

son.py

class SON():
 def __init__(self, instance):
 self.mBattle = instance
 def getSon(self):
 return self.mBattle.getAlltest()

更多Python相干技巧文章,请拜访Python教程栏目进行学习!

以上就是python若何正在没有同类之间挪用办法的具体内容,更多请存眷资源魔其它相干文章!

标签: python教程 python编程 python使用问题 python不同类之间调用方法

抱歉,评论功能暂时关闭!