#python-3.x #class #methods
#python-3.x #класс #методы
Вопрос:
Я пишу класс Python и пытаюсь вызвать функцию из другой функции в классе, но я сталкиваюсь с ошибкой. NameError: name 'bobfunction' is not defined
. Мой вызов класса работает, даже вызов метода / функции job работает. При job
попытке вызова bobfunction
я получаю сообщение об ошибке. удаление вызова bobfunction
работает. Итак, как мне вызвать функцию bobfunction из функции job?
class stuff():
def __init__(self):
#setup stuff
def bobfunction(self,junk):
print("should work")
return ''
def job(self,data):
bobfunction('test data')
return 'other junk'
Комментарии:
1. Кажется, что ваш отступ смещен.
def
Функция in job должна совпадать сdef
функцией in bobfunction
Ответ №1:
Запустите его с self.bobfunction("test data")
Python использует ключевое слово self
для ссылки на методы класса и переменные того же класса. Это похоже на this
ключевое слово в других языках. (Хотя и не то же самое) . Если вы в конечном итоге определяете переменную в своей __init__
функции, вы также можете использовать ее с self.variable_name
в других функциях.
Ответ №2:
Вы должны попытаться запустить его с помощью stuff.bobfunction(self, «тестовые данные») Поскольку функция bobfunction была расположена в материале класса, вам нужно написать имя класса перед именем функции. Self в круглых скобках должен передавать имя self.