Python类有哪些属性
class Foo(object):
c_foo_a = 'Foo'
def __init__(self):
self.i_foo_a = 'self.foo'
def Foo_func(self):
pass
print(dir(Foo))
输出结果:
['Foo_func', '__class__', '__delattr__', '__dict__', '__dir__', '__doc__',
'__eq__', '__format__', '__ge__', '__getattribute__', '__gt__',
'__hash__', '__init__', '__init_subclass__', '__le__', '__lt__',
'__module__', '__ne__', '__new__', '__reduce__', '__reduce_ex__',
'__repr__', '__setattr__', '__sizeof__', '__str__', '__subclasshook__',
'__weakref__', 'c_foo_a']
可以看到一些平时很少用到的内置方法
自定义属性访问
在Python3的自定义数据访问里提到几个重要的魔术方法:
__getattr__
__getattribute__
__setattr__
-
__delattr__
按照Python的文档提到:
methods can be defined to customize the meaning of attribute access (use of, assignment to, or deletion of x.name) for class instances.
先不理解这些特性,后续开始了解属性代理的访问,通过上述的魔术方法可以实现特殊的用途。
网友评论