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删除java文件头上版权信息的方法
Jul 31 Python
python使用webbrowser浏览指定url的方法
Apr 04 Python
python实现简单ftp客户端的方法
Jun 28 Python
python开发之for循环操作实例详解
Nov 12 Python
Python多线程、异步+多进程爬虫实现代码
Feb 17 Python
pandas DataFrame 交集并集补集的实现
Jun 24 Python
django框架CSRF防护原理与用法分析
Jul 22 Python
python实现字符串和数字拼接
Mar 02 Python
python 监控服务器是否有人远程登录(详细思路+代码)
Dec 18 Python
史上最详细的Python打包成exe文件教程
Jan 17 Python
python中子类与父类的关系基础知识点
Feb 02 Python
pyqt5蒙版遮罩mask,setmask的使用
Jun 11 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 str_replace的替换漏洞
2008/03/15 PHP
PHP中去除换行解决办法小结(PHP_EOL)
2011/11/27 PHP
YII模块实现绑定二级域名的方法
2014/07/09 PHP
typecho插件编写教程(六):调用接口
2015/05/28 PHP
PHP的Socket网络编程入门指引
2015/08/11 PHP
PHP 进程池与轮询调度算法实现多任务的示例代码
2019/11/26 PHP
精通Javascript系列之数值计算
2011/06/07 Javascript
javaScript 计算两个日期的天数相差(示例代码)
2013/12/27 Javascript
javascript函数定义的几种区别小结
2014/01/06 Javascript
浅析jQuery(function(){})与(function(){})(jQuery)之间的区别
2014/01/09 Javascript
jquery实现的Banner广告收缩效果代码
2015/09/02 Javascript
javascript比较语义化版本号的实现代码
2016/09/09 Javascript
简单实现jquery焦点图
2016/12/12 Javascript
js中数组插入、删除元素操作的方法
2017/02/15 Javascript
Bootstrap 模态框多次显示后台提交多次BUG的解决方法
2017/12/26 Javascript
webstorm添加*.vue文件支持
2018/05/08 Javascript
解决vue-router路由拦截造成死循环问题
2020/08/05 Javascript
[55:02]2014 DOTA2国际邀请赛中国区预选赛 HGT VS Orenda
2014/05/21 DOTA
Django框架中数据的连锁查询和限制返回数据的方法
2015/07/17 Python
Python的地形三维可视化Matplotlib和gdal使用实例
2017/12/09 Python
Python中xrange与yield的用法实例分析
2017/12/26 Python
pytorch 调整某一维度数据顺序的方法
2018/12/08 Python
Flask框架重定向,错误显示,Responses响应及Sessions会话操作示例
2019/08/01 Python
关于pandas的离散化,面元划分详解
2019/11/22 Python
pytorch点乘与叉乘示例讲解
2019/12/27 Python
有关pycharm登录github时有的时候会报错connection reset的问题
2020/09/15 Python
Html5 Canvas 实现一个“刮刮乐”游戏
2019/09/05 HTML / CSS
Weekendesk意大利:探索多种引人入胜的周末主题
2016/10/14 全球购物
布里斯班女装时尚品牌:Adrift
2017/12/28 全球购物
自1926年以来就为冰岛保持温暖:66°North
2020/11/27 全球购物
关联、聚合(Aggregation)以及组合(Composition)的区别
2012/02/29 面试题
私有程序集与共享程序集有什么区别
2013/04/05 面试题
党员教师工作决心书
2014/03/13 职场文书
小学生感恩演讲稿
2014/04/25 职场文书
大学生求职信怎么写
2015/03/19 职场文书
解决Windows Server2012 R2 无法安装 .NET Framework 3.5
2022/04/29 Servers