Python 名称错误:名称';队列id';没有定义
我希望能够创建一个类的实例,并在此实例上调用将我连接到服务(SQS,如果这很重要的话)的方法。然后我希望能够调用方法,让我与该服务交互 出于某种原因,我在导入时不断遇到以下错误:Python 名称错误:名称';队列id';没有定义,python,class,oop,object,arguments,Python,Class,Oop,Object,Arguments,我希望能够创建一个类的实例,并在此实例上调用将我连接到服务(SQS,如果这很重要的话)的方法。然后我希望能够调用方法,让我与该服务交互 出于某种原因,我在导入时不断遇到以下错误: class AmazonQueue(queue_id): NameError: name 'queue_id' is not defined 但据我所知,这甚至在导入时都没有被调用,所以我不应该得到这个错误 AmazonQueue中有以下方法: def __new__(self, queue_id):
class AmazonQueue(queue_id):
NameError: name 'queue_id' is not defined
但据我所知,这甚至在导入时都没有被调用,所以我不应该得到这个错误
AmazonQueue中有以下方法:
def __new__(self, queue_id):
conn = am_auth.BasicAuth()
q = conn.create_queue(queue_id)
return q
它只向服务返回一个表示身份验证的对象,我认为理论上其他方法可以运行该对象
在我的脚本中,我希望这样运行:
q = am_queue.AmazonQueue(queue_id='queue_id_goes_here')
然后在AmazonQueue()内部调用一个方法,如下所示:
那么,如果导入时没有实例化类,为什么会出现此错误?在类定义中,
AmazonQueue
的参数是父类,而不是实例化所需的参数
一种选择是只创建一个函数,因为您的示例使用非常简单
def get_queue(queue_id):
conn = am_auth.BasicAuth()
q = conn.create_queue(queue_id)
return q
有一点需要考虑的是:
一般来说,除非您
子类化不可变类型,如str、int、unicode或tuple
从堆栈溢出的答案来看,基本上这完全是因为我对Python中的OOP不熟悉。类定义在导入时调用,因为定义类是一个可执行语句。
def get_queue(queue_id):
conn = am_auth.BasicAuth()
q = conn.create_queue(queue_id)
return q