一聚教程网:一个值得你收藏的教程网站

最新下载

热门教程

Python使用vars返回对象的属性列表代码示例

时间:2020-10-17 编辑:袖梨 来源:一聚教程网

本篇文章小编给大家分享一下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.

返回当前作用域内的局部变量和其值组成的字典,或者返回对象的属性列表

说明

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

#不带参数功能和locals函数一样
>>> v1 = vars()
>>> l1 = locals()
>>> v1
{'__name__': '__main__', '__builtins__': , 'v1': {...}, 'l1': {...}, '__spec__': None, '__doc__': None, '__package__': None, '__loader__': }
>>> l1
{'__name__': '__main__', '__builtins__': , 'v1': {...}, 'l1': {...}, '__spec__': None, '__doc__': None, '__package__': None, '__loader__': }

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

#作用于模块
>>> import time
>>> vars(time)
{'gmtime': , 'tzname': ('Öйú±ê׼ʱ¼ä', 'ÖйúÏÄÁîʱ'), 'timezone': -28800, 'struct_time': , 'ctime': , 'perf_counter': , 'mktime': , 'localtime': , 'time': , '__package__': '', 'altzone': -32400, 'clock': , 'strptime': , 'monotonic': , '__loader__': , 'get_clock_info': , 'sleep': , 'process_time': , '__name__': 'time', '_STRUCT_TM_ITEMS': 9, '__spec__': ModuleSpec(name='time', loader=, origin='built-in'), '__doc__': 'This module provides various functions to manipulate time values.nnThere are two standard representations of time. One is the numbernof seconds since the Epoch, in UTC (a.k.a. GMT). It may be an integernor 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).nnThe 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.nnVariables:nntimezone -- difference in seconds between UTC and local standard timenaltzone -- difference in seconds between UTC and local DST timendaylight -- whether local time should reflect DSTntzname -- tuple of (standard time zone name, DST time zone name)nnFunctions:nntime() -- return current time in seconds since the Epoch as a floatnclock() -- return CPU time since process start as a floatnsleep() -- delay for a number of seconds given as a floatngmtime() -- convert seconds since Epoch to UTC tuplenlocaltime() -- convert seconds since Epoch to local time tuplenasctime() -- convert time tuple to stringnctime() -- convert time in seconds to stringnmktime() -- convert local time tuple to seconds since Epochnstrftime() -- convert time tuple to string according to format specificationnstrptime() -- parse string to time tuple according to format specificationntzset() -- change the local timezone', 'strftime': , 'asctime': , 'daylight': 0}

#作用于类
>>> vars(slice)
mappingproxy({'__ne__': , '__getattribute__': , '__reduce__': , 'start': , 'indices': , '__ge__': , 'stop': , '__eq__': , 'step': , '__hash__': None, '__doc__': 'slice(stop)nslice(start, stop[, step])nnCreate a slice object. This is used for extended slicing (e.g. a[0:10:2]).', '__repr__': , '__le__': , '__gt__': , '__new__': , '__lt__': })

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

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

热门栏目