本文文章主要介紹了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'}
新聞熱點
疑難解答