Python内置函数—vars的具体使用方法


Posted in Python onDecember 04, 2017

本文文章主要介绍了Python内置函数—vars的具体使用方法,分享给大家,具体如下:

英文文档:

vars([object])

Return the __dict__ attribute for a module, class, instance, or any other object with a __dict__ attribute.Objects such as modules and instances have an updateable __dict__ attribute; however, other objects may have write restrictions on their __dict__ attributes (for example, classes use a dictproxy to prevent direct dictionary updates).Without an argument, vars() acts like locals(). Note, the locals dictionary is only useful for reads since updates to the locals dictionary are ignored.

参数

object -- 对象

返回值

返回对象object的属性和属性值的字典对象,如果没有参数,就打印当前调用位置的属性和属性值 类似 locals()。

说明

1. 当函数不接收参数时,其功能和locals函数一样,返回当前作用域内的局部变量。

#不带参数功能和locals函数一样
>>> v1 = vars()
>>> l1 = locals()
>>> v1
{'__name__': '__main__', '__builtins__': <module 'builtins' (built-in)>, 'v1': {...}, 'l1': {...}, '__spec__': None, '__doc__': None, '__package__': None, '__loader__': <class '_frozen_importlib.BuiltinImporter'>}
>>> l1
{'__name__': '__main__', '__builtins__': <module 'builtins' (built-in)>, 'v1': {...}, 'l1': {...}, '__spec__': None, '__doc__': None, '__package__': None, '__loader__': <class '_frozen_importlib.BuiltinImporter'>}

2. 当函数接收一个参数时,参数可以是模块、类、类实例,或者定义了__dict__属性的对象。

#作用于模块
>>> import time
>>> vars(time)
{'gmtime': <built-in function gmtime>, 'tzname': ('Öйú±ê׼ʱ¼ä', 'ÖйúÏÄÁîʱ'), 'timezone': -28800, 'struct_time': <class 'time.struct_time'>, 'ctime': <built-in function ctime>, 'perf_counter': <built-in function perf_counter>, 'mktime': <built-in function mktime>, 'localtime': <built-in function localtime>, 'time': <built-in function time>, '__package__': '', 'altzone': -32400, 'clock': <built-in function clock>, 'strptime': <built-in function strptime>, 'monotonic': <built-in function monotonic>, '__loader__': <class '_frozen_importlib.BuiltinImporter'>, 'get_clock_info': <built-in function get_clock_info>, 'sleep': <built-in function sleep>, 'process_time': <built-in function process_time>, '__name__': 'time', '_STRUCT_TM_ITEMS': 9, '__spec__': ModuleSpec(name='time', loader=<class '_frozen_importlib.BuiltinImporter'>, origin='built-in'), '__doc__': 'This module provides various functions to manipulate time values.\n\nThere are two standard representations of time. One is the number\nof seconds since the Epoch, in UTC (a.k.a. GMT). It may be an integer\nor a floating point number (to represent fractions of seconds).\nThe Epoch is system-defined; on Unix, it is generally January 1st, 1970.\nThe actual value can be retrieved by calling gmtime(0).\n\nThe other representation is a tuple of 9 integers giving local time.\nThe tuple items are:\n year (including century, e.g. 1998)\n month (1-12)\n day (1-31)\n hours (0-23)\n minutes (0-59)\n seconds (0-59)\n weekday (0-6, Monday is 0)\n Julian day (day in the year, 1-366)\n DST (Daylight Savings Time) flag (-1, 0 or 1)\nIf the DST flag is 0, the time is given in the regular time zone;\nif it is 1, the time is given in the DST time zone;\nif it is -1, mktime() should guess based on the date and time.\n\nVariables:\n\ntimezone -- difference in seconds between UTC and local standard time\naltzone -- difference in seconds between UTC and local DST time\ndaylight -- whether local time should reflect DST\ntzname -- tuple of (standard time zone name, DST time zone name)\n\nFunctions:\n\ntime() -- return current time in seconds since the Epoch as a float\nclock() -- return CPU time since process start as a float\nsleep() -- delay for a number of seconds given as a float\ngmtime() -- convert seconds since Epoch to UTC tuple\nlocaltime() -- convert seconds since Epoch to local time tuple\nasctime() -- convert time tuple to string\nctime() -- convert time in seconds to string\nmktime() -- convert local time tuple to seconds since Epoch\nstrftime() -- convert time tuple to string according to format specification\nstrptime() -- parse string to time tuple according to format specification\ntzset() -- change the local timezone', 'strftime': <built-in function strftime>, 'asctime': <built-in function asctime>, 'daylight': 0}

#作用于类
>>> vars(slice)
mappingproxy({'__ne__': <slot wrapper '__ne__' of 'slice' objects>, '__getattribute__': <slot wrapper '__getattribute__' of 'slice' objects>, '__reduce__': <method '__reduce__' of 'slice' objects>, 'start': <member 'start' of 'slice' objects>, 'indices': <method 'indices' of 'slice' objects>, '__ge__': <slot wrapper '__ge__' of 'slice' objects>, 'stop': <member 'stop' of 'slice' objects>, '__eq__': <slot wrapper '__eq__' of 'slice' objects>, 'step': <member 'step' of 'slice' objects>, '__hash__': None, '__doc__': 'slice(stop)\nslice(start, stop[, step])\n\nCreate a slice object. This is used for extended slicing (e.g. a[0:10:2]).', '__repr__': <slot wrapper '__repr__' of 'slice' objects>, '__le__': <slot wrapper '__le__' of 'slice' objects>, '__gt__': <slot wrapper '__gt__' of 'slice' objects>, '__new__': <built-in method __new__ of type object at 0x6A91B420>, '__lt__': <slot wrapper '__lt__' of 'slice' objects>})

#作用于类实例
>>> class A(object):
  pass

>>> a.__dict__
{}
>>> vars(a)
{}
>>> a.name = 'Kim'
>>> a.__dict__
{'name': 'Kim'}
>>> vars(a)
{'name': 'Kim'}

本函数是实现返回对象object的属性和属性值的字典对象。如果默认不输入参数,就打印当前调用位置的属性和属性值,相当于locals()的功能。如果有参数输入,就只打印这个参数相应的属性和属性值。

例子:

#vars() 
 
print(vars()) 
 
class Foo: 
  a = 1 
print(vars(Foo)) 
 
foo = Foo() 
print(vars(foo))

结果输出如下:

{'Foo': <class '__main__.Foo'>, 'B': <class '__main__.B'>, '__name__': '__main__', '__doc__': None, '__spec__': None,...
{'__module__': '__main__', 'a': 1, '__dict__': <attribute '__dict__' of 'Foo' objects>, '__weakref__': <attribute '__weakref__' of 'Foo' objects>, '__doc__': None}
{}

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持三水点靠木。

Python 相关文章推荐
在Python中操作字典之update()方法的使用
May 22 Python
深入浅析python继承问题
May 29 Python
解决Python requests 报错方法集锦
Mar 19 Python
python简单实例训练(21~30)
Nov 15 Python
Python实现将Excel转换成为image的方法
Oct 23 Python
使用CodeMirror实现Python3在线编辑器的示例代码
Jan 14 Python
python批量识别图片指定区域文字内容
Apr 30 Python
python创建子类的方法分析
Nov 28 Python
简单了解python装饰器原理及使用方法
Dec 18 Python
python输出pdf文档的实例
Feb 13 Python
python 监控服务器是否有人远程登录(详细思路+代码)
Dec 18 Python
python pyg2plot的原理知识点总结
Feb 28 Python
Python实现基本数据结构中栈的操作示例
Dec 04 #Python
Python实现多进程共享数据的方法分析
Dec 04 #Python
Python数据结构之栈、队列的实现代码分享
Dec 04 #Python
关于Python数据结构中字典的心得
Dec 04 #Python
python Flask实现restful api service
Dec 04 #Python
浅谈Python中带_的变量或函数命名
Dec 04 #Python
Python中对象的引用与复制代码示例
Dec 04 #Python
You might like
php class中self,parent,this的区别以及实例介绍
2013/04/24 PHP
关于PHP二进制流 逐bit的低位在前算法(详解)
2013/06/13 PHP
学习ExtJS fit布局使用说明
2009/10/08 Javascript
jquery.ui.draggable中文文档
2009/11/24 Javascript
jquery下操作HTML控件的实现代码
2010/01/12 Javascript
JavaScript DOM学习第六章 表单实例
2010/02/19 Javascript
ie与ff下的event事件使用介绍
2013/11/25 Javascript
AngularJS中的模块详解
2015/01/29 Javascript
js显示当前日期时间和星期几
2015/10/22 Javascript
Bootstrap弹出带合法性检查的登录框实例代码【推荐】
2016/06/23 Javascript
JS实现探测网站链接的方法【测试可用】
2016/11/08 Javascript
详解Vue Elememt-UI构建管理后台
2018/02/27 Javascript
浅谈使用mpvue开发小程序需要注意和了解的知识点
2018/05/23 Javascript
JavaScript实现简易计算器小功能
2020/10/22 Javascript
Python 初始化多维数组代码
2008/09/06 Python
Python爬虫实现网页信息抓取功能示例【URL与正则模块】
2017/05/18 Python
Python最火、R极具潜力 2017机器学习调查报告
2017/12/11 Python
Python3导入自定义模块的三种方法详解
2018/04/13 Python
详解python中Numpy的属性与创建矩阵
2018/09/10 Python
python+logging+yaml实现日志分割
2019/07/22 Python
Python实现网页截图(PyQT5)过程解析
2019/08/12 Python
python文字转语音实现过程解析
2019/11/12 Python
python re模块常见用法例举
2021/03/01 Python
加大码胸罩、内裤和服装:Just My Size
2019/03/21 全球购物
存储过程和函数的区别
2013/05/28 面试题
UNIX文件系统分类
2014/11/11 面试题
《九色鹿》教学反思
2014/02/27 职场文书
高中军训感想300字
2014/03/04 职场文书
企业管理毕业生求职信
2014/03/11 职场文书
幼儿园保育员责任书
2014/07/22 职场文书
乡镇党的群众路线教育实践活动领导班子对照检查材料
2014/09/25 职场文书
在宿舍喝酒的检讨书
2014/09/28 职场文书
开平碉楼导游词
2015/02/06 职场文书
Python Django搭建文件下载服务器的实现
2021/05/10 Python
python中的None与NULL用法说明
2021/05/25 Python
从QQtabBar看css命名规范BEM的详细介绍
2021/08/07 HTML / CSS