我已经玩了两个星期的脚本,还没有遇到任何问题,但是我现在正在尝试创建一个类,并且遇到了问题。
我自己并不完全理解它,但是当我尝试创建以下类的实例时出现此错误NameError: global name 'instance_status_check' is not defined
。
我完全知道这堂课目前做得并不多,但是直到解决问题我才能继续。有人可以解释我做错了吗?
import sys
import boto
import boto.ec2
class Monitor:
def __init__(self,conn,identifier):
self.connection = conn
self.identifier = identifier
self.dispatcher ={'1': instance_status_check}
def user_menu():
for i, value in self.dispatcher.itertems():
print "Please press {i} for {value}".format(i,value)
def instance_status_check():
pass
最佳答案
两种方法都缺少self
参数,它是iteritems
而不是itertems
:
class Monitor: # upper case for class names
def __init__(self,conn,identifier):
self.connection = conn
self.identifier = identifier
self.dispatcher ={'1': self.instance_status_check} # call self.instance_status_check()
def user_menu(self): # self here
for i, value in self.dispatcher.iteritems():
print("Please press {i} for {value}".format(i,value))
def instance_status_check(self): # self here
return "In status method"
m = Monitor(3,4)
print(m.dispatcher["1"]())
In status method
我建议您看一下docs中的类教程
关于python - 类实例初始化时发生NameError,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/26473798/