Python __dict__和vars()】的更多相关文章

1 __dict__ 设想这样一个场景.有一个字典,从某个地方获取的,比如http请求发过来的,比如从redis中hgetall出来的.我要根据这个字典来构建一个对象. 比如类 class Person: def __init__(self,_obj): self.name = _obj['name'] self.age = _obj['age'] 利用__dict__的特性,上面的类可以用如下的代替,代码量大大减少: class Person: def __init__(self,_obj):…
首先参考官方文档对这三个函数的介绍: 2. Built-in Functions – Python3.5 1.globals() 返回当前全局符号表, 通常是返回当前模块下的全局符号表, 比如全局内建的函数,以及模块里的全局符号(定义声明的变量,类, 实例等), 在函数或者类方法中, globals()返回的模块符号表 是其所在模块, 而不是调用模块. 2.locals() 更新并以字典形式返回当前局部符号表. 自由变量由函数块的locals() 返回, 而不会由 class 块来返回. 需要注…
本文转载自 https://www.cnblogs.com/alvin2010/p/9102344.html 感谢 //偏执 大佬 我们都知道Python一切皆对象,那么Python究竟是怎么管理对象的呢? 1.无处不在的__dict__ 首先看一下类的__dict__属性和类对象的__dict__属性 # -*- coding: utf-8 -*- class A(object): """ Class A. """ a = 0 b = 1 de…
__dict__:要是对象的话返回的是一个对象自身的实例属性.不包括类的属性:要是类的__dict__则不包括父类的属性,只包含自身类属性[方法.类变量],不包括实例属性.正是这样.每个实例的实例属性才会互不影响. dir():返回的是对象的所有属性.包括父类的属性 python一切皆对象.类本身也有__dict__函数.跟dir()函数.那么类与实例的两个函数有没有区别呢? 答案是:有的 class A(): Tang = "tang" def __init__(self): sel…
dict 以key-value 的形式存储着本对类/模块的: 模块的__dict__ 属性: 存储了模块的 name (这个也是模块的一个单独的键,即:在Bx.py 中引入Ax.py 那么,在Bx中,会有 Ax.__dict__["__name__'] = Ax.__name__ 存储了本模块中的类,key为类名,value为类. e.g.: {"String":<class 'sqlalchemy.sql.sqltypes.String'>,'User"…
dir()和vars()的区别就是 dir()只打印属性(属性,属性......) 而vars()则打印属性与属性的值(属性:属性值......) ex. >> a='aaaaaaaaaaaaa' >> class b: >> c = 'cccc' >> dir() >>['__builtins__', '__doc__', '__file__', '__name__', '__package__', 'a', 'b'] >> var…
vars([object]) 返回__dict__属性的值.当不传入参数时,和locals()等效.当函数接收一个参数时,参数可以是模块.类.类实例,或者定义了__dict__属性的对象. >>> vars(A) mappingproxy({'__module__': '__main__', 'infoA': 'A', '__dict__': <attribute '__dict__' of 'A' objects>, '__weakref__': <attribute…
Python __dict__与dir() 出处(http://blog.csdn.net/lis_12/article/details/53521554). Python下一切皆对象,每个对象都有多个属性(attribute),Python对属性有一套统一的管理方案. __dict__与dir()的区别: dir()是一个函数,返回的是list: __dict__是一个字典,键为属性名,值为属性值: dir()用来寻找一个对象的所有属性,包括__dict__中的属性,__dict__是dir(…
set集合 集合是一个无序的,不重复的元素集合. 集合的创建: name_set = {'tom','jerry','alex','rose'} 或 name_set = set(['tom','jerry','alex','rose']) 集合的方法: 添加一个元素 def add(self, *args, **kwargs): >>> name_set.add('jack') >>> name_set {'alex', 'tom', 'jerry', 'jack',…
1.字符串 定义:它是一个有序的字符的集合,用于存储和表示基本的文本信息,‘’或“”或‘’‘ ’‘’中间包含的内容称之为字符串特性:1.只能存放一个值2.不可变3.按照从左到右的顺序定义字符集合,下标从0开始顺序访问,有序补充: 1.字符串的单引号和双引号都无法取消特殊字符的含义,如果想让引号内所有字符均取消特殊意义,在引号前面加r,如name=r'l\thf' 2.unicode字符串与r连用必需在r前面,如name=ur'l\thf' 2.字符串常用操作 # 1字母处理: .upper()…