Python 如何从内部嵌套类中的另一个类调用静态变量

Python 如何从内部嵌套类中的另一个类调用静态变量,python,python-3.x,Python,Python 3.x,我试图用python创建一个常量文件,我需要使用嵌套类来声明其中的一些静态变量。其中一些变量使用另一个内部类中的另一个变量问题是,当我尝试调用该静态变量时,NameError显示名称“MyClass1”未定义。 这是一个例子: class MyOutterClass: class MyClass1: myStaticVar1 = 5 class myClass2: myStaticVar2 = MyClass1.myStaticVar1 * 2 错误消息位于mySt

我试图用python创建一个常量文件,我需要使用嵌套类来声明其中的一些静态变量。其中一些变量使用另一个内部类中的另一个变量问题是,当我尝试调用该静态变量时,NameError显示名称“MyClass1”未定义。 这是一个例子:

class MyOutterClass:

  class MyClass1:
    myStaticVar1 = 5

  class myClass2:
    myStaticVar2 = MyClass1.myStaticVar1 * 2
错误消息位于myStaticVar2:NameError:name“myClass1”未定义


你们有解决这个问题的方法吗?你们能告诉我是什么导致了这个问题吗!谢谢。

类作用域中的变量在类作用域中嵌套的其他作用域中不可访问。在您的示例中,MyClass1是MyOuterClass的类范围中的一个变量。在MyClass2的主体中创建了一个新的作用域,该作用域无权访问封闭类的作用域,因此出现了错误


我真的不认为有理由为此使用嵌套类。您可以只使用字典,或提供属性样式访问的某种字典,例如。

为什么需要为此使用嵌套类?这里的嵌套类用于我或其他开发人员需要使用的常量变量,例如,我有一个接受某些参数的函数,这些参数必须是预定义的,用户不需要知道实际值,只要使用这个常量文件就可以以分层方式找到所需的内容。示例:Arduino.GPIO.PORT.pin1,此参数表示pin地址,他不需要知道如何将其配置为输入或输出。这并不能解释为什么您认为必须为此使用嵌套类,而不是字典、枚举或其他东西。目前,我将保持这种嵌套类的状态,我将尽量避免从另一个类调用变量,只是为了加快工作并继续。但感谢您的建议,我想我稍后将在项目的另一个版本中使用它或使用名为tuple的集合库。