class中__dict__的理解,Python3

class Friends():       #定义一个类

    def __init__(self):             

        self.name = 'wuq'         #两个实例变量

        self.gender = 'female'

    

def say_to_friend():     #有一个方法

        print('hello %s'%self.name)


if __name__ == '__main__':

    f = Friends()    #创建实例

    print(f.__dict__)     #输出为{'name':'wuq','gender':'female'}

    print(Friends.__dict__)

'''

输出一堆,

{'__modul__':'__main__','__init__':<function Friends.__init__ at 0x000000000022FE730>,...

'__doc__':None}所处模块...等


实际上,实例的__dict__仅存了与实例相关的实例属性.

实例的__dict__属性,也使得每个实例的实例属性不会相互影响,一个实例的实例属性就是和ta相关的那些属性.


f.message = 'hello my world'    #在外部添加一个实例属性   动态的添加一个属性

f.fun = lambda :x    #实例属性为一个函数

print(f.__dict__)    #输出则为{'name':'wuq','gender':'female','message':'hello my world','fun':<function <lambda> at 0x00000000001F8E7B8>}最后的fun,函数为对应的内存地址


实例的__dict__存有与实例相关的实例变量和函数.


类的__dict__则是和实例共享的变量,函数(方法,类属性).注意,类的__dict__并不包含其父类的属性.

比如,直接print(object.__dict__)

子类的__dict__中不包含父类的__dict__.

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值