[888]python内置函数vars()|dir()|locals()
时间:2022-07-23
本文章向大家介绍[888]python内置函数vars()|dir()|locals(),主要内容包括其使用实例、应用技巧、基本知识点总结和需要注意事项,具有一定的参考价值,需要的朋友可以参考一下。
dir()和vars()的区别
dir()只打印属性(属性,属性…)
而vars()则打印属性与属性的值(属性:属性值…),不带参数功能和locals()函数一样
>> a='aaaaaaaaaaaaa'
>> class b:
>> c = 'cccc'
>> dir()
>>['__builtins__', '__doc__', '__file__', '__name__', '__package__', 'a', 'b']
>> vars()
>> {'a': 'aaaaaaaaaaaaa', 'b': , '__builtins__': , '__file__': 'C:\Users\CS11\Desktop\test.py', '__package__': None, '__name__': '__main__', '__doc__': None}
>> dir(b)
>>['__doc__', '__module__', 'c']
>> vars(b)
>>{'__module__': '__main__', 'c': 'cccc', '__doc__': None}
vars() 函数
vars() 函数返回对象object的属性和属性值的字典对象,如果没有参数,就打印当前调用位置的属性和属性值 类似 locals()。
当函数接收一个参数时,参数可以是模块、类、类实例,或者定义了__dict__
属性的对象。
>>>print(vars())
{'__builtins__': <module '__builtin__' (built-in)>, '__name__': '__main__', '__doc__': None, '__package__': None}
>>> class Runoob:
... a = 1
...
>>> print(vars(Runoob))
{'a': 1, '__module__': '__main__', '__doc__': None}
>>> runoob = Runoob()
>>> print(vars(runoob))
{}
------------------------------------------------------------------------------
#作用于模块
>>> 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.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': <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])nnCreate 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'}
对于 x = 1,这样的一个赋值语句,我们在执行后,名称 x 引用到值 1。这就像字典一样,键引用值,当然,变量和所对应的值用的是个"不可见"的字典。我们可以使用 vars 函数来返回这个字典:
>>> x = 1
>>> scope = vars()
>>> scope["x"]
1
参考:https://www.runoob.com/python/python-func-vars.html https://www.cnblogs.com/leisurelylicht/p/Python-dir-hevars-de-qu-bie.html https://www.jb51.net/article/129698.htm
- 机器学习实战,使用朴素贝叶斯来做情感分析
- Python NLTK 处理原始文本
- 通过闪回事务查看数据dml的情况 (r2笔记69天)
- 通过shell和sql结合查找性能sql(r2笔记68天)
- 淘宝的评论归纳是用什么方法做到的?
- Python的机器学习实战:AadBoost
- 通过shell检查分区表中是否含有默认分区(r2笔记87天)
- 利用python爬取人人贷网的数据
- 通过shell脚本查看package的信息(r2笔记86天)
- 通过shell脚本查看procedure的信息(r2笔记85天)
- 支持中文文本数据挖掘的开源项目PyMining
- 通过分区键值发现性能问题(r2笔记84天)
- linux乱码和数据库乱码的问题简单排查(r2笔记83天)
- 一条运行了3天的"简单"的sql(r2笔记82天)
- JavaScript 教程
- JavaScript 编辑工具
- JavaScript 与HTML
- JavaScript 与Java
- JavaScript 数据结构
- JavaScript 基本数据类型
- JavaScript 特殊数据类型
- JavaScript 运算符
- JavaScript typeof 运算符
- JavaScript 表达式
- JavaScript 类型转换
- JavaScript 基本语法
- JavaScript 注释
- Javascript 基本处理流程
- Javascript 选择结构
- Javascript if 语句
- Javascript if 语句的嵌套
- Javascript switch 语句
- Javascript 循环结构
- Javascript 循环结构实例
- Javascript 跳转语句
- Javascript 控制语句总结
- Javascript 函数介绍
- Javascript 函数的定义
- Javascript 函数调用
- Javascript 几种特殊的函数
- JavaScript 内置函数简介
- Javascript eval() 函数
- Javascript isFinite() 函数
- Javascript isNaN() 函数
- parseInt() 与 parseFloat()
- escape() 与 unescape()
- Javascript 字符串介绍
- Javascript length属性
- javascript 字符串函数
- Javascript 日期对象简介
- Javascript 日期对象用途
- Date 对象属性和方法
- Javascript 数组是什么
- Javascript 创建数组
- Javascript 数组赋值与取值
- Javascript 数组属性和方法
- 使用Spring Boot DevTools优化你的开发体验
- 排序算法——一篇文章搞懂常用的排序算法
- 路径寻优
- Milvus 实战 | 基于 Milvus 的 CORD-19 论文检索引擎
- Laravel 8 新特性和功能优化速览
- Linux 搭建 我的世界(MC) 基岩版服务器
- 虚函数、析构函数、静态函数、多态
- 一日一技:pylint除了检查代码风格,还能做这件事情
- Manjaoro ifconfig问题
- 面对成百上千台服务器产生的日志,试试这款轻量级日志搬运神器!
- 内网渗透 | 内网中的信息收集
- 通过命令下载执行恶意代码的几种姿势
- CS如何配置通过CDN上线
- Height transition
- 【DB笔试面试861】在Oracle中,有哪些常见组件?