菜鸟教程 -- 学的不仅是技术,更是梦想!

Python 基础教程
(追記) (追記ここまで)

Python vars() 函数

Python 内置函数 Python 内置函数


描述

vars() 函数返回对象object的属性和属性值的字典对象。

语法

vars() 函数语法:

vars([object])

参数

  • object -- 对象

返回值

返回对象object的属性和属性值的字典对象,如果没有参数,就打印当前调用位置的属性和属性值 类似 locals()。

实例

以下实例展示了 vars() 的使用方法:

>>>print(vars()) {'__builtins__': <module'__builtin__'(built-in)>, '__name__': '__main__', '__doc__': None, '__package__': None} >>> classRunoob: ... a = 1 ... >>> print(vars(Runoob)) {'a': 1, '__module__': '__main__', '__doc__': None} >>> runoob = Runoob() >>> print(vars(runoob)) {}

Python 内置函数 Python 内置函数

AI 思考中...

2 篇笔记 写笔记

  1. #0

    shaonianruntu

    514***[email protected]

    97

    对于 x = 1,这样的一个赋值语句,我们在执行后,名称 x 引用到值 1。这就像字典一样,键引用值,当然,变量和所对应的值用的是个"不可见"的字典。我们可以使用 vars 函数来返回这个字典:

    >>> x = 1
    >>> scope = vars()
    >>> scope["x"]
    1

    shaonianruntu

    514***[email protected]

    9年前 (2018年02月08日)
  2. #0

    忘忧北萱草

    wyb***qq.com

    28

    vars 的一个用法是动态生成类成员。

    # 来自 Python 官方文档 enum 模块的例子
    from datetime import timedelta
    from enum import Enum
    class Period(timedelta, Enum):
     "different lengths of time"
     _ignore_ = 'Period i'
     Period = vars()
     for i in range(367):
     Period['day_%d' % i] = i
    print(Period.day_5.value)
    # 5 days, 0:00:00

    这里的 vars 表示的是类定义内部的局部作用域,相当于分别执行下面这些代码:

    class Period(timedelta, Enum):
     "different lengths of time"
     day_1 = timedelta(1)
     day_2 = timedelta(2)
     ...
     day_366 = timedelta(366)

    由于类定义内部是单独的作用域,因此用 globals 或者 locals 达不到相同的效果,而在类定义中,因为类名称还不可用,因此也无法用 setattr 实现。

    忘忧北萱草

    wyb***qq.com

    4年前 (2022年02月17日)

点我分享笔记

  • 昵称 (必填)
  • 邮箱 (必填)
  • 引用地址

AltStyle によって変換されたページ (->オリジナル) /