资讯

精准传达 • 有效沟通

从品牌网站建设到网络营销策划,从策略到执行的一站式服务

Python中类与类之间属性和方法的调用方法-创新互联

这篇文章主要介绍了Python中类与类之间属性和方法的调用方法,具有一定借鉴价值,需要的朋友可以参考下。希望大家阅读完这篇文章后大有收获。下面让小编带着大家一起了解一下。

创新互联专注于网站建设|企业网站维护|优化|托管以及网络推广,积累了大量的网站设计与制作经验,为许多企业提供了网站定制设计服务,案例作品覆盖成都活动板房等行业。能根据企业所处的行业与销售的产品,结合品牌形象的塑造,量身设计品质网站。

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中类与类之间属性和方法的调用方法-创新互联
URL标题:http://cdkjz.cn/article/eephg.html
多年建站经验

多一份参考,总有益处

联系快上网,免费获得专属《策划方案》及报价

咨询相关问题或预约面谈,可以通过以下方式与我们联系

大客户专线   成都:13518219792   座机:028-86922220