Python 类和命名空间?

标签 python class namespaces

假设我想定义一个类名 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/

相关文章:

Python 类定义的差异

python - 从不同目录 Python 打开 CSV

c# - 在类中存储不同泛型类型的列表

c# - 如果将两个类的函数放在一个委托(delegate)中会发生什么?

vue.js - 名称间距在 vuex 映射中不起作用,抛出模​​ block namespace 未找到

python - 为什么我需要在 tkinter 函数内部使用全局语句?

python - 空格分隔的 csv,列名和值中有空格

c++ - 错误 LNK2001 : unresolved external symbol "public: double __thiscall

java - 将 Class 对象传递给方法

c++ - 使用匿名函数正确定义命名空间