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 相关文章推荐
Django集成百度富文本编辑器uEditor攻略
Jul 04 Python
python django集成cas验证系统
Jul 14 Python
python 循环遍历字典元素的简单方法
Sep 11 Python
Python书单 不将就
Jul 11 Python
python2.7实现FTP文件下载功能
Apr 15 Python
Python 3.6 读取并操作文件内容的实例
Apr 23 Python
python 以16进制打印输出的方法
Jul 09 Python
基于python求两个列表的并集.交集.差集
Feb 10 Python
Python文件夹批处理操作代码实例
Jul 21 Python
利用python 下载bilibili视频
Nov 13 Python
python实现简单的名片管理系统
Apr 26 Python
python3 字符串str和bytes相互转换
Mar 23 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 带逗号千位符数字的处理方法
2012/01/10 PHP
php自动加载方式集合
2016/04/04 PHP
jquery图片不完全按比例自动缩小的简单代码
2013/07/29 Javascript
js控制当再次点击按钮时的间隔时间
2014/06/03 Javascript
JS中的THIS和WINDOW.EVENT.SRCELEMENT详解
2015/05/25 Javascript
JS hashMap实例详解
2016/05/26 Javascript
JavaScript实现HTML5游戏断线自动重连的方法
2017/09/18 Javascript
纯JS实现的读取excel文件内容功能示例【支持所有浏览器】
2018/06/23 Javascript
jQuery 点击获取验证码按钮及倒计时功能
2018/09/20 jQuery
VueJS 组件参数名命名与组件属性转化问题
2018/12/03 Javascript
记录vue项目中遇到的一点小问题
2019/05/14 Javascript
js设置鼠标悬停改变背景色实现详解
2019/06/26 Javascript
Vue生命周期activated之返回上一页不重新请求数据操作
2020/07/26 Javascript
python计算对角线有理函数插值的方法
2015/05/07 Python
Python在Console下显示文本进度条的方法
2016/02/14 Python
Python分支语句与循环语句应用实例分析
2019/05/07 Python
python 用所有标点符号分隔句子的示例
2019/07/15 Python
python创建属于自己的单词词库 便于背单词
2019/07/30 Python
在Django admin中编辑ManyToManyField的实现方法
2019/08/09 Python
浅谈Python type的使用
2019/11/19 Python
python中设置超时跳过,超时退出的方式
2019/12/13 Python
Tensorflow的梯度异步更新示例
2020/01/23 Python
Keras使用ImageNet上预训练的模型方式
2020/05/23 Python
10个示例带你掌握python中的元组
2020/11/23 Python
pandas将list数据拆分成行或列的实现
2020/12/13 Python
canvas之自定义头像功能实现代码示例
2017/09/29 HTML / CSS
KIKO MILANO西班牙官网:意大利领先的化妆品和护肤品品牌
2019/05/03 全球购物
枚举和一组预处理的#define有什么不同
2016/09/21 面试题
结婚典礼证婚词
2014/01/11 职场文书
大学生蛋糕店创业计划书
2014/01/13 职场文书
敬老院院长事迹材料
2014/05/21 职场文书
医德考评自我评价
2014/09/14 职场文书
2014年领导班子专项整治整改方案
2014/09/28 职场文书
夫妻吵架保证书
2015/05/08 职场文书
2016年6.5世界环境日宣传活动总结
2016/04/01 职场文书
SQL 尚未定义空闲 CPU 条件 - OnIdle 作业计划将不起任何作用
2021/06/30 SQL Server