class MyClass(object):
code_mapping = {...}
def get_name(code):
code = code_mapping[code]
...
在这段代码中,它抱怨“未定义code_mapping”。 MyClass中的所有内容都无法访问code_mapping吗?
答案 0 :(得分:1)
使用self
对其进行初始化。这将使类中的任何函数都可以访问它,方法是将self.<variable>
传递给它,然后将self
作为函数参数传递给要传递给变量的任何对象。
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]
...
或者您可以这样做:
class MyClass(object):
def __init__(self, code_mapping):
self.code_mapping = code_mapping
def get_name(self):
code = self.code_mapping[code]
...
如果您希望在实例化时将一些代码映射作为参数传递给您的类。
要在您要{'code1' : 'name'}
的位置创建一个类对象,请启动一个这样的类对象:
code1 = MyClass({'code1' : 'name'})
然后{'code1' : 'name'}
将被执行到get_name()
中,code
中get_name
的值将是name
。