__doc__,__dict__和__dir__()的区别
Posted smillepro
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了__doc__,__dict__和__dir__()的区别相关的知识,希望对你有一定的参考价值。
__doc__,__dict__和__dir__(),这三个内置函数老是混淆,下面做出区别:
__doc__:得到的是一个文档信息
__dict__:返回的是一个字典,字典的内容是类的属性
__dir__():返回的是关于函数或者类的属性和方法以及内置的函数等,如果没有括号就是一个返回一个对象的地址
__name__:返回的是函数的名字
class A: ‘‘‘ 这个是调试 ‘‘‘ def fun(self): print(‘in func‘) a = A() a.name = ‘alex‘ a.age = 84 ret = getattr(a,‘name‘) print(ret) print(a.__dict__) # {‘name‘: ‘alex‘, ‘age‘: 84} print(a.__dir__) # [‘name‘, ‘age‘, ‘__module__‘, ‘__doc__‘, ‘fun‘, ‘__dict__‘, ‘__weakref__‘, ‘__repr__‘, ‘__hash__‘, ‘__str__‘, ‘__getattribute__‘, ‘__setattr__‘, ‘__delattr__‘, ‘__lt__‘, ‘__le__‘, ‘__eq__‘, ‘__ne__‘, ‘__gt__‘, ‘__ge__‘, ‘__init__‘, ‘__new__‘, ‘__reduce_ex__‘, ‘__reduce__‘, ‘__subclasshook__‘, ‘__init_subclass__‘, ‘__format__‘, ‘__sizeof__‘, ‘__dir__‘, ‘__class__‘] print(a.__doc__) # 这个是调试 ret = getattr(a,‘fun‘) ret() def func(): ‘‘‘ 又是一个调试 :return: ‘‘‘ gender = ‘男‘ phone = ‘10086‘ return gender+phone print(func.__dict__) # {} print(func.__dir__()) # [‘__repr__‘, ‘__call__‘, ‘__get__‘, ‘__new__‘, ‘__closure__‘, ‘__doc__‘, ‘__globals__‘, ‘__module__‘, ‘__code__‘, ‘__defaults__‘, ‘__kwdefaults__‘, ‘__annotations__‘, ‘__dict__‘, ‘__name__‘, ‘__qualname__‘, ‘__hash__‘, ‘__str__‘, ‘__getattribute__‘, ‘__setattr__‘, ‘__delattr__‘, ‘__lt__‘, ‘__le__‘, ‘__eq__‘, ‘__ne__‘, ‘__gt__‘, ‘__ge__‘, ‘__init__‘, ‘__reduce_ex__‘, ‘__reduce__‘, ‘__subclasshook__‘, ‘__init_subclass__‘, ‘__format__‘, ‘__sizeof__‘, ‘__dir__‘, ‘__class__‘] print(func.__name__) # 函数的名字 print(func.__doc__) # 文档
以上是关于__doc__,__dict__和__dir__()的区别的主要内容,如果未能解决你的问题,请参考以下文章