Я столкнулся с проблемой с кодом, который обрамлен классом.Имя не определяет ошибку при использовании класса
По существу, это был просто файл с определенными в нем функциями.
Итак, когда я пытался выполнить файл с помощью команды 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, также она работает нормально в случае необходимости без ошибок.
Теперь я создал класс, а затем переместил все функции в одно и то же.
Выше функция переписывается следующим образом.
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()
Но, теперь я получаю ошибку следующим образом:
[email protected]:/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
Примечание: Обеспечит полный файл, если необходимо ,
Спасибо .. Это дало мне идею исправить это. Я только что изменил определения (ключевой камень) вне класса, так что он отлично работал. – iamnewuser
@iamnewuser u r welcome –