Python 为什么我不能引用类中定义的全局变量?
在这段代码中,它抱怨“代码映射未定义”。MyClass中的所有东西都可以访问代码映射吗?用self初始化它。这将使类中的任何函数都可以通过self传递它来访问它。然后将self作为函数参数传递给任何要传递变量的对象Python 为什么我不能引用类中定义的全局变量?,python,Python,在这段代码中,它抱怨“代码映射未定义”。MyClass中的所有东西都可以访问代码映射吗?用self初始化它。这将使类中的任何函数都可以通过self传递它来访问它。然后将self作为函数参数传递给任何要传递变量的对象 class MyClass(object): code_mapping = {...} def get_name(code): code = code_mapping[code] ... 或者你可以: class MyClass(object):
class MyClass(object):
code_mapping = {...}
def get_name(code):
code = code_mapping[code]
...
或者你可以:
class MyClass(object):
def __init__(self):
self.code_mapping = {...} # if this will be a hard coded
def get_name(self):
code = self.code_mapping[code]
...
如果希望在类实例化时将一些代码映射作为参数传递给类
若要从此处创建一个类对象,您需要{'code1':'name'},然后启动一个类对象,如下所示:
class MyClass(object):
def __init__(self, code_mapping):
self.code_mapping = code_mapping
def get_name(self):
code = self.code_mapping[code]
...
然后,{'code1':'name'}将被带入get_name所做的任何事情中,get_name中的代码值将是name 它是可用的,但只能通过类或self。本周矛盾修饰法:在类中定义的全局变量。将其放入构造函数中…构造函数是必需的还是可选的?您是否每次都将新参数传递给self.code\u映射,还是这将是一个硬编码的变量self.code\u映射[名称],其中“name”是一个变量,不需要,但需要良好的实践。这也是创建新类时向类传递变量的方式。
code1 = MyClass({'code1' : 'name'})