2024-04-23 23:39:15 发布
网友
我有一个类,试图根据传递给它的变量名实例化另一个类。它抱怨“str”对象不可调用。正确的方法是什么?在
def MyClass: def __init__(self, otherName): self.other = otherName()
编辑:这是我的全部代码,有什么我应该做不同的吗?埃瓦尔在Python中是邪恶的吗?在
如果您真的希望将参数作为字符串传递,可以使用eval()。在
class MyClass: def __init(self, otherName): self.other = eval(otherName)()
您应该能够通过locals()函数返回的dict访问类。这是一个简单的课程
class ClassA: def __init__(self, word): self.word = word def __str__(self): return "Class A word is '%s'" % self.word
我可以从一个字符串中创建这个类,然后正常调用它
你完全可以不使用字符串来实现这一点。您可以在Python中按名称引用类,并像其他任何对象一样传递它们。因此,使用上面的MyClass定义,而不是:
MyClass
c = Controller("Blog")
您可以简单地使用:
绝对不建议使用eval()来进行类似的操作。在
eval()
如果您真的希望将参数作为字符串传递,可以使用eval()。在
您应该能够通过locals()函数返回的dict访问类。这是一个简单的课程
我可以从一个字符串中创建这个类,然后正常调用它
^{pr2}$你完全可以不使用字符串来实现这一点。您可以在Python中按名称引用类,并像其他任何对象一样传递它们。因此,使用上面的
MyClass
定义,而不是:您可以简单地使用:
^{pr2}$绝对不建议使用
eval()
来进行类似的操作。在相关问题 更多 >
编程相关推荐