如何在Python中通过类方法利用函数参数创建动态命名的实例变量
动态生成Python类实例属性的解决方案
要实现根据方法参数动态创建name_age格式的实例变量,你可以使用Python内置的setattr()函数,它专门用于给对象动态设置属性。
修改你的代码如下:
class test: def __init__(self): self.name = "test" self.age = 20 def get_variable(self, name, age): # 用f-string拼接属性名,通过setattr动态设置实例变量 attr_name = f"{name}_{age}" setattr(self, attr_name, 'some value') t = test() t.get_variable('test', 20) print(t.test_20) # 输出: some value
补充说明
setattr(obj, attr_name, value)是Python标准库函数,第一个参数是目标对象,第二个是属性名的字符串,第三个是属性值,完美适配动态生成属性名的场景。- 也可以通过直接操作实例的
__dict__属性实现(self.__dict__[attr_name] = 'some value'),但setattr()是更推荐的规范写法。
内容的提问来源于stack exchange,提问作者isapansoni
相关产品推荐
相关产品推荐

