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

原文地址:https://www.cnblogs.com/smillepro/p/10529486.html

时间: 2024-08-03 07:23:43

__doc__,__dict__和__dir__()的区别的相关文章

__dict__和dir()的区别

__dict__和dir()的区别 dir() 一般用来查看模块的属性 __dict__从某方面上来说是dir()的子集 可以直接打印dir(),显示的是当前执行文件所有的属性 __dict__ __dict__是对象的属性,有些对象是没有__dict__这个属性的 (list,dict...) zx=[1,2,3,4] zx2={"sa":"sad"} print(dir(zx)) # print(zx2.__dict__) # print(zx.__dict__

python __dict__ 跟 dir()的区别

__dict__:要是对象的话返回的是一个对象自身的实例属性.不包括类的属性:要是类的__dict__则不包括父类的属性,只包含自身类属性[方法.类变量],不包括实例属性.正是这样.每个实例的实例属性才会互不影响. dir():返回的是对象的所有属性.包括父类的属性 python一切皆对象.类本身也有__dict__函数.跟dir()函数.那么类与实例的两个函数有没有区别呢? 答案是:有的 class A(): Tang = "tang" def __init__(self): sel

Python __dict__与dir()区别

Python __dict__与dir() Python __dict__与dir __dict__属性 dir函数 结论 转载请标明出处(http://blog.csdn.net/lis_12/article/details/53521554). Python下一切皆对象,每个对象都有多个属性(attribute),Python对属性有一套统一的管理方案. __dict__与dir()的区别: dir()是一个函数,返回的是list: __dict__是一个字典,键为属性名,值为属性值: di

Python带参数的装饰器

在装饰器函数里传入参数 # -*- coding: utf-8 -*- # 2017/12/2 21:38 # 这不是什么黑魔法,你只需要让包装器传递参数: def a_decorator_passing_arguments(function_to_decorate): def a_wrapper_accepting_arguments(arg1, arg2): print("I got args! Look:", arg1, arg2) function_to_decorate(ar

Python中类的特殊属性和魔术方法

1.属性 属性 含义 __name__ 类.函数.方法等的名字   __dir__ __module__ 类定义所在的模块名 __class__ 对象或类所属的类   只是返回基类 __bases__ 返回自己到object的类,类的基类元组,顺序为在基类列表中出现的顺序. __doc__ 类,函数的文档字符串,如果没有定义则为None. __mro__ 类的不是实例的.类的mro,class.mro()返回的结果保存在__mro__中. __dict__ 类或实例属性,可写的字典. 标识符和名

Python入学第二天知识

第一个知识点:对于Python,一切事物都是对象,对象基于类创建 例如:"huyakun","你好",8,['北京','上海','深圳','广州']这些值都是对象,并且是不同类的生成的对象.             如何查看类的功能以及方法: 其他类的查看方式亦是如此. 一.整数型 如:8.88.99.100 每一个整数都具备如下功能: class int(object): """ int(x=0) -> int or long

python之基本内容

这里提供在使用python进行开发中常使用到的方法技巧,如有不对欢迎批评指正. 要点:开发中类.变量特性查询,类型就是类,断言的使用,深浅复制判断等 python脚本文件是使用UTF-8编码的,所以在发现中文字符出现乱码时应当考虑是否文本文件采用UTF-8编码. 如果想指定不同的编码需要在源码文件中开头处添加这样的注释: # -*- coding: utf-8 -*- 如果python在linux和unix系统中运行,需要在源码的第一行添加: #!/usr/bin/python3 如何获取pyt

python进阶强化学习

最近学习了慕课的python进阶强化训练,将学习的内容记录到这里,同时也增加了很多相关知识. 主要分为以下九个模块: 基本使用 迭代器和生成器 字符串 文件IO操作 自定义类和类的继承 函数装饰器和类的装饰器 进程和线程 内存管理和垃圾回收机制 基本使用 基本的数据包括:list,tuple(元组),set(集合)和dict(字典).heapq.queue 处理的实际问题是:过滤列表中的负数 解决方案: 列表解析,最好的方式 字典,使用字典的方式和使用列表的方式差不多,都是对value做判断,但

目录操作和文件操作的函数

一:目录操作的函数1.创建目录: mkdir(目录地址和名字,权限)----第三个参数bool,支持递归创建 2.删除目录:目录下没有其他文件的时候才可以 rmdir(目录地址) 3.移动目录(改名): rename(原始文件路径,新的文件路径) 4.获取目录的内容 1,打开目录,opendir,得到一个目录句柄(目录资源) 2,依次读取目录内的文件,readdir 3,关闭目录句柄(closedir)遍历目录下的所有文件!遍历只会遍历当前目录下的(一层) 5.获取当前工作路径 getcwd--