我面临的问题是以Class为框架的代码。
基本上它只是一个文件中定义了函数。
所以当我尝试使用命令python filename.py执行文件时,它正常工作正常。
代码示例如下:
# Getting the tenant list
# Fetch the creation_date of tenant if exists
def get_tenants():
# Fetch tenant list
tenants_list = keystone.tenants.list()
# Fetch tenant ID
for tenant in tenants_list:
tenant_id = tenant.id
.
.
.
get_tenants()
所以如我文件中的aboce代码所示,我试图调用get_tenants函数,它也可以正常工作,没有错误。
现在我创建了Class,然后将所有函数移动到同一个。
以上功能现在改写如下。
def get_tenants(self):
# Fetch tenant list
tenants_list = keystone.tenants.list()
# Fetch tenant ID
for tenant in tenants_list:
tenant_id = tenant.id
然后我调用了函数如下:
billing = BillingEngine()
billing.get_tenants()
但是,现在我收到的错误如下:
root@devstack:/opt/open-stack-tools/billing# python new_class.py
Traceback (most recent call last):
File "new_class.py", line 281, in <module>
BillingEngine().get_tenants()
File "new_class.py", line 75, in get_tenants
tenants_list = keystone.tenants.list()
NameError: global name 'keystone' is not defined
注意:如果需要,将提供完整的文件。
答案 0 :(得分:1)
可能你必须定义这个吗?
class Example(object):
keystone = Keystone()
def get_tenants(self):
self.keystone.do_something()