我在 module1.py 文件中定义了一个 python 类:
class MBVar():
def __init__(self, var_type, expression):
self.var_type = var_type
self.expression = expression
... ecc ...
我希望能够在主 *.py 文件中写入:
from module1 import MBVar
X = MBVar('integer', 6)
并添加到我的 MBVar 类中:
self.name = ???
以这样的方式:self.name = 'X'。 可以这样做吗??
谢谢
最佳答案
所以我假设你想传递变量名和值作为参数并将其分配给一个对象,为此我们不需要变量的类型,因为 python 使用鸭子类型我们只需要添加字符串表示内置字典 __dict__
中的变量名作为键,整数作为值。
class MBVar():
def __init__(self, var_name, expression):
self.__dict__[var_name] = expression
def add_later(self, var_name, expression):
self.__dict__[var_name] = expression
def get_name(self):
return self.name
X = MBVar('name', 6)
print X.get_name() # prints 6
X.add_later('secint',4);
print X.secint #prints 4
X.__dict__['thirdint'] = 7
print X.thirdint #prints 7
关于python:将变量名传递给类,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36984185/