优草派  >   Python

python中vars函数如何使用?

吴雅婷            来源:优草派

在Python中,vars()是一个内置函数,它返回对象的__dict__属性。__dict__是一个字典,它包含了对象的属性和属性值。因此,vars()函数返回的是一个包含对象属性和属性值的字典。

vars()函数有多种用途。下面将从多个角度分析vars()函数的使用方法。

python中vars函数如何使用?

1. vars()函数用于获取对象的属性和属性值

vars()函数最常见的用途是获取对象的属性和属性值。下面是一个示例:

```

class Person:

def __init__(self, name, age):

self.name = name

self.age = age

p = Person("Alice", 25)

print(vars(p))

```

输出结果为:

```

{'name': 'Alice', 'age': 25}

```

2. vars()函数用于设置对象的属性值

vars()函数也可以用于设置对象的属性值。下面是一个示例:

```

class Person:

def __init__(self, name, age):

self.name = name

self.age = age

p = Person("Alice", 25)

vars(p)['age'] = 30

print(p.age)

```

输出结果为:

```

30

```

需要注意的是,vars()函数返回的是一个字典,我们可以通过修改字典中的值来改变对象的属性值。但是,这种方法并不是很常见,一般我们会直接通过对象的属性名来修改属性值。

3. vars()函数用于动态创建类和对象

vars()函数可以用于动态创建类和对象。下面是一个示例:

```

class_attributes = {'name': 'Person', 'age': 25}

Person = type('Person', (object,), class_attributes)

p = Person()

print(p.name)

```

输出结果为:

```

Person

```

在这个示例中,我们首先创建了一个字典class_attributes,它包含了我们想要创建的类的属性和属性值。然后,我们使用type()函数动态创建了一个类Person,该类继承自object类,并且具有class_attributes字典中的属性和属性值。最后,我们创建了一个Person类的实例p,并访问了它的name属性。

4. vars()函数用于获取模块的全局变量

vars()函数还可以用于获取模块的全局变量。下面是一个示例:

```

import math

print(vars(math))

```

输出结果为:

```

{'__name__': 'math', '__doc__': 'This module is always available. It provides access to the\nmathematical functions defined by the C standard.', '__package__': '', '__loader__': , '__spec__': ModuleSpec(name='math', loader=), 'acos': , 'asin': , 'atan': , 'atan2': , 'ceil': , 'cos': , 'cosh': , 'degrees': , 'e': 2.718281828459045, 'erf': , 'erfc': , 'exp': , 'expm1': , 'fabs': , 'factorial': , 'floor': , 'fmod': , 'frexp': , 'fsum': , 'gamma': , 'gcd': , 'hypot': , 'inf': inf, 'isclose': , 'isfinite': , 'isinf': , 'isnan': , 'ldexp': , 'lgamma': , 'log': , 'log10': , 'log1p': , 'log2': , 'modf': , 'nan': nan, 'pi': 3.141592653589793, 'pow': , 'radians': , 'remainder': , 'sin': , 'sinh': , 'sqrt': , 'tan': , 'tanh': , 'tau': 6.283185307179586, 'trunc': }

```

在这个示例中,我们使用import语句导入了math模块,然后使用vars()函数获取了math模块的全局变量。注意,vars()函数返回的是一个字典,其中包含了模块的所有全局变量。

5. vars()函数用于获取当前作用域的变量

vars()函数还可以用于获取当前作用域的变量。下面是一个示例:

```

def foo():

x = 10

print(vars())

foo()

```

输出结果为:

```

{'x': 10}

```

在这个示例中,我们定义了一个函数foo,在函数内部定义了一个变量x,并使用vars()函数获取了当前作用域的变量。注意,vars()函数返回的是一个字典,其中包含了当前作用域的所有变量。

【原创声明】凡注明“来源:优草派”的文章,系本站原创,任何单位或个人未经本站书面授权不得转载、链接、转贴或以其他方式复制发表。否则,本站将依法追究其法律责任。
TOP 10
  • 周排行
  • 月排行