假设我想定义一个类名 MyClass。
我想使用那个类。所以,
class MyClass():
blabla
MyClass = MyClass(abc)
假设我想创建一个函数并在该函数中使用 MyClass 。我发现以下代码将出现异常:
def MyFunction():
MyClass = MyClass(abc)
MyFunction(123)
有什么帮助吗?我可以这样做
Myclass1 = MyClass(abc)
但我认为我缺少一些关于命名空间的基本知识。谢谢!
最佳答案
当你执行时
MyClass = MyClass(abc)
您正在创建 MyClass
的新实例,并将其分配给类本身,而使用 Myclass1 = MyClass(abc)
时,您不会覆盖该类。覆盖类不应引发异常(异常可能与使用参数调用 MyFunction()
方法有关,因为它不接受任何参数,或者可能与调用 的构造函数有关>MyClass
带有一个参数,因为这也不需要任何参数),但我想这不是你想要做的。
Myclass1 = MyClass(abc)
对我来说看起来不错(除了传递的参数之外),尽管我建议使用 myClass1
(或者更好的是,通常使用的 python变量的样式为 my_class1
),而不是将第一个字母大写,因为这样可以防止混淆哪个对象是类。
关于Python 类和命名空间?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12616933/