python:将变量名传递给类

标签 python

我在 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/

相关文章:

python - matplotlib 中的 Latex 脚本

python - Cython 导入错误 : No module named parallel

python - Scrapy Crawlspider 不爬行是正则表达式吗?

python - Pandas 列内的映射值

python - 带有自定义用户模型的 django-allauth 不起作用

python - 是否可以将约束 unique = True 除了空字符串设置到 SQLAlchemy 中?

python - SystemExit: `requests` 您安装的库已被劫持

c# - IronPython 和 Revit API - 如何在列表框中显示项目属性(属性名称)?

python - 在 python 中创建 NamedTemporaryFile 时出现 ValueError

使用 NLTK 的 Python 在 sent_tokenize 和 word_tokenize 处显示错误