聊聊python中的绑定是什么

老规矩,先上代码

class CC:
    def setTT(self,x,y):
        self.x = x
        self.y = y
    def printTT(self):
        print(self.x , self.y)



 输出如下:

cc = CC()
#可以使用__dict__查看对象拥有的属性:
cc.__dict__
{}

CC.__dict__
mappingproxy({'__module__': '__main__', 'setXY': <function CC.setXY at 0x000000FD096EC268>, 'printXY': <function CC.printXY at 0x000000FD0BFB21E0>, '__dict__': <attribute '__dict__' of 'CC' objects>, '__weakref__': <attribute '__weakref__' of 'CC' objects>, '__doc__': None})

#在上面可以看出__dict__属性由一个字典组成,字典中仅有实例对象的属性,不显示类属性和特殊属性,键表示的是属性名,值表示的属性对应的数据值。

cc.setTT(4,5)
cc.__dict__
{'x': 4, 'y': 5}

这儿说明了什么呢,此时的实例对象cc有两个新属性,而且这两个属性仅属于实例对象。

CC.__dict__
mappingproxy({'__module__': '__main__', 'setXY': <function CC.setXY at 0x000000FD096EC268>, 'printXY': <function CC.printXY at 0x000000FD0BFB21E0>, '__dict__': <attribute '__dict__' of 'CC' objects>, '__weakref__': <attribute '__weakref__' of 'CC' objects>, '__doc__': None})

为什么会这样呢?主要在于self参数,当实例对象cc去调用setTT方法的时候,他实际上传入的第一个参数是cc,

cc = setTT(cc,4,5),此时也就容易看出self.x= 4,self.y=6就相当于cc.x =4,cc.y=5

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值