python __get__ __getattr__ __getattribute__
来源:互联网 发布:个性化简历推荐算法 编辑:程序博客网 时间:2024/06/05 01:20
class C(object):
a = 'abc'
def fun(self):
print 'this fun'
def __getattribute__(self, *args, **kwargs):
print("__getattribute__() is called")
return object.__getattribute__(self, *args, **kwargs)
def __getattr__(self, name):
print("__getattr__() is called ")
return name + " from getattr"
def __get__(self, instance, owner):
print("__get__() is called", instance, owner)
return self
class C2(object):
d = C()
c2.d
a = 'abc'
def fun(self):
print 'this fun'
def __getattribute__(self, *args, **kwargs):
print("__getattribute__() is called")
return object.__getattribute__(self, *args, **kwargs)
def __getattr__(self, name):
print("__getattr__() is called ")
return name + " from getattr"
def __get__(self, instance, owner):
print("__get__() is called", instance, owner)
return self
class C2(object):
d = C()
if __name__ == '__main__':
c = C()
#以下访问存在的属性和方法,会调用__getattribute__
c.fun()
c.a
#访问不存在的属性和方法,会先调用__getattribute__然后调用__getattr__
c.b
#类被引用时调用__get__
c2 = C2()c2.d
0 0
- python __get__ __getattr__ __getattribute__
- Python __getattribute__、__getattr__、__get__总结
- python中__get__,__getattr__,__getattribute__的区别
- python中__get__,__getattr__,__getattribute__的区别
- python中__get__,__getattr__,__getattribute__的区别
- python中__get__,__getattr__,__getattribute__的区别
- python中__get__, __getattr__和__getattribute__区别说明
- 详解Python中 __get__和__getattr__和__getattribute__的区别
- python3中__get__,__getattr__,__getattribute__的区别
- 飘逸的python - __get__ vs __getattr__ vs __getattribute__以及属性的搜索策略
- python总结(五):__get__、__getattr__、__getitem__、__getattribute__之间的差异与联系
- python:__getattr__() 和 __getattribute__()
- python __getattr__和__getattribute__
- Python __getattr__ __getattribute__
- Python __getattr__ __getattribute__ __setattr__
- Python----__getattribute__, __getattr__
- python __setattr__, __getattr__, __delattr__,__getattribute__
- Python笔记:getattr,__getattr__,__getattribute__
- 【36位互联网顶级大佬的特殊癖好】壕的世界真奇妙
- flash倒计时功能
- CentOs下Apache配置全过程
- spring之控制反转
- Android有效解决加载大图片时内存溢出的问题
- python __get__ __getattr__ __getattribute__
- SSRS Fields cannot be used in page headers or footers
- 组图:全球首款飞行摩托开售 变形仅需10分钟
- How to configure and use minicom in Ubuntu 12.04 User Manual
- 利用strncat函数使字符串居中
- 限制文本框中只能输入数字
- 积木分发
- 海水淡化膜:世韩海水淡化膜在海水淡化中的应用
- libsvm 使用介绍