При запуске этого скрипта я получаю следующую ошибку.NameError при запуске скрипта
p1=Person1("Plumber",fav_food,ethnicity,name,"male")
NameError: name 'fav_food' is not defined
Я новичок в ООП, но, как я понимаю, fav_food
это определить, когда я определил Person1
класс. Очевидно, я ошибаюсь, но почему?
class Person():
def __init__(self,job,fav_food,ethnicity,name,gender):
self.job=job
self.fav_food=fav_food
self.ethnicity=ethnicity
self.name=name
self.gender=gender
class Person1(Person):
def __init__(self,job,fav_food,ethnicity,name,gender):
Person.__init__(self,job,fav_food,ethnicity,name,gender)
self.job=job
self.fav_food="chips"
self.ethnicity="white"
self.name=random.shuffle(names)[0]
self.gender=gender
p1=Person1("Plumber",fav_food,ethnicity,name,"male")
и где вы определяете 'fav_food' на уровне модуля? – Daniel
Извините, не зная, что вы имеете в виду, - подумал я, определив self.fav_food в классе Person1, мне не нужно было определять его в другом месте. – ThePrinceofPython
Существуют разные пространства имен, глобальные и локальные. 'fav_food' определяется локально только в' __init__'. – Daniel