首页 > 解决方案 > 使用与字符串同名的变量执行操作

问题描述

假设我有一个名为“x”的变量和一个值为“x”的字符串(string1 =“x”)。如何通过字符串对变量进行处理?例如更改变量的值或调用方法(如果它是对象)?提前致谢

标签: python

解决方案


变量可通过字典locals()globals(). 如果你想通过它的弹簧名称访问一个特定的变量,你可以这样做,例如

>>> my_var = 'hello'
>>> x = 'my_var'
>>> locals()[x]
'hello'

您也可以使用这种方法分配回变量,例如

>>> my_var = 'hello'
>>> x = 'my_var'
>>> locals()[x] = 'something else'
>>> my_var
'something else'

由于函数是 Python 中的对象,因此您可以以相同的方式访问任何本地可用的函数来调用它们。

>>> def my_test_function(n):
>>>     return n*8

访问该方法并调用它。

>>> locals()['my_test_function'](4)
32

要通过对象名称访问对象的属性,您可以使用getattr(), 和setattr()设置它们。例如,创建一个具有单个属性的对象,称为your_prop.

class Example:
    your_prop = 2

a = Example()

该值可通过 获得your_prop

>>> a.your_prop
2

该属性可以通过名称使用getattr

>>> getattr(a, 'your_prop')
2

可以使用以下方式设置属性setattr

>>> setattr(a, 'your_prop', 5)
>>> a.your_prop
5

推荐阅读