python 类和函数的属性

函数和类的默认属性

这里主要介绍类和函数的一些属性。
__dict__用来描述对象的属性。对于类来说,它内部的变量就是它的数量,注意,不是它的member variable,但是对于函数来说不是。对于类来说,而对于类对象来说,输出的是整个类的属性,而__dict__输出的是self.variable的内容。

python中的函数有很多特殊的属性(包括自定义的函数和库函数)

  • doc 输出用户定义的关于函数的说明
  • name 输出函数名字
  • module 输出函数所在模块的名字
  • dict 输出函数中的字典

示例:

1
2
3
4
5
6
7
8
9
10
11
12
13
def myfunc():
'this func is to test the __doc__'
myfunc.func_attr = "attr"
print("hhhh")

myfunc.func_attr1 = "first1"
myfunc.func_attr2 = "first2"

if __name__ == "__main__":
print(myfunc.__doc__)
print(myfunc.__name__)
print(myfunc.__module__)
print(myfunc.__dict__)

输出:

this func is to test the doc
myfunc
main
{‘func_attr1’: ‘first1’, ‘func_attr2’: ‘first2’}

类也有很多特殊的属性(包括自定义的类和库中的类)

  • doc 输出用户定义的类的说明
  • module 输出类所在模块的名字
  • dict 输出类中的字典

示例:

1
2
3
4
5
6
7
8
9
10
11
12
class MyClass:
"""This is my class __doc__"""
class_name = "cllll"
def __init__(self, test=None):
self.test = test
pass


if __name__ == "__main__":
print(MyClass.__dict__)
print(MyClass.__doc__)
print(MyClass.__module__)

输出:

{‘module’: ‘main’, ‘doc’: ‘This is my class doc’, ‘class_name’: ‘cllll’, ‘init’: <function MyClass.init at 0x7f1349d44510>, ‘dict’: <attribute ‘dict’ of ‘MyClass’ objects>, ‘weakref’: <attribute ‘weakref’ of ‘MyClass’ objects>}
This is my class doc
main

类的对象的属性

  • doc 输出用户定义的类的说明
  • module 输出类对象所在模块的名字
  • dict 输出类对象中的字典

示例

1
2
3
4
5
6
7
8
9
10
11
12
13
 1 class MyClass:
2 """This is my class __doc__"""
3 class_name = "cllll"
4 def __init__(self, test=None):
5 self.test = test
6 pass
7
8 if __name__ == "__main__":
9
10 cl = MyClass()
11 print(cl.__dict__)
12 print(cl.__doc__)
13 print(cl.__module__)

输出

{‘test’: None}
This is my class doc
main