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基础教程之分支、循环简单用法
Jun 16 Python
简单谈谈Python中的几种常见的数据类型
Feb 10 Python
Python实现去除列表中重复元素的方法小结【4种方法】
Apr 27 Python
使用python 3实现发送邮件功能
Jun 15 Python
[原创]Python入门教程1. 基本运算【四则运算、变量、math模块等】
Oct 28 Python
解决pycharm remote deployment 配置的问题
Jun 27 Python
在Python中获取操作系统的进程信息
Aug 27 Python
python中的split()函数和os.path.split()函数使用详解
Dec 21 Python
Python如何使用bokeh包和geojson数据绘制地图
Mar 21 Python
记录模型训练时loss值的变化情况
Jun 16 Python
Python如何读写CSV文件
Aug 13 Python
python 模块导入问题汇总
Feb 01 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
javascript showModalDialog,open取得父窗口的方法
2010/03/10 Javascript
JS子父窗口互相操作取值赋值的方法介绍
2013/05/11 Javascript
jquery必须知道的一些常用特效方法及使用示例(整理)
2013/06/24 Javascript
常用js字符串判断方法整理
2013/10/18 Javascript
js点击出现悬浮窗效果不使用JQuery插件
2014/01/20 Javascript
浅谈javascript中自定义模版
2015/01/29 Javascript
jQuery实现判断滚动条到底部
2015/06/23 Javascript
基于jQuery仿淘宝产品图片放大镜特效
2020/10/19 Javascript
JavaScript、jQuery与Ajax的关系
2016/01/24 Javascript
Js获取当前日期时间及格式化代码
2016/09/17 Javascript
Angular开发者指南之入门介绍
2017/03/05 Javascript
Django+vue跨域问题解决的详细步骤
2019/01/20 Javascript
JQuery获取元素尺寸、位置及页面滚动事件应用示例
2019/05/14 jQuery
vue store之状态管理模式的详细介绍
2019/06/13 Javascript
EXTJS7实现点击拖拉选择文本
2020/12/17 Javascript
[02:36]DOTA2英雄基础教程 帕格纳
2014/01/20 DOTA
Python通过正则表达式选取callback的方法
2015/07/18 Python
Python基于回溯法子集树模板解决野人与传教士问题示例
2017/09/11 Python
基于python的字节编译详解
2017/09/20 Python
python中字典按键或键值排序的实现代码
2019/08/27 Python
Pytorch中accuracy和loss的计算知识点总结
2019/09/10 Python
Python3加密解密库Crypto的RSA加解密和签名/验签实现方法实例
2020/02/11 Python
python实现磁盘日志清理的示例
2020/11/05 Python
UGG雪地靴荷兰官网:UGG荷兰
2016/09/09 全球购物
瑞士领先的网上超市:LeShop.ch
2018/11/14 全球购物
描述RIP和OSPF区别以及特点
2015/01/17 面试题
工商管理专业实习生自我鉴定
2013/09/29 职场文书
银行个人求职自荐信范文
2013/12/16 职场文书
护士辞职信模板
2014/01/20 职场文书
安全生产承诺书范文
2014/05/22 职场文书
2014年党员自我评价材料
2014/09/22 职场文书
广播稿:校园广播稿范文
2019/04/17 职场文书
javascript实现计算器功能详解流程
2021/11/01 Javascript
浅谈JavaScript作用域
2021/12/06 Javascript
「地球外少年少女」BD发售宣传CM公开
2022/03/21 日漫
Golang入门之计时器
2022/05/04 Golang