__doc__,__dict__和__dir__()的区别

在工作中__doc__,__dict__和__dir__(),这三个内置函数老是混淆,下面做出区别:

__doc__:得到的是一个文档信息

__dict__:返回的是一个字典,字典的内容是类的属性

__dir__():返回的是关于函数或者类的属性和方法以及内置的函数等,如果没有括号就是一个返回一个对象的地址

__name__:返回的是函数的名字

__main__:返回的是本模块。sys.modules['__main__'].属性或者方法

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__)  # 文档

 

转载于:https://www.cnblogs.com/smillepro/p/10529486.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值