Найти - Пользователи
Полная версия: Ошибка функции класса - NameError: name 'self' is not defined
Начало » Python для новичков » Ошибка функции класса - NameError: name 'self' is not defined
1
Orkshaman
Если пишу в питоне так:

Python
a='hello world'

def print_this_thing(this_thing=a):

print this_thing

print_this_thing()
то на выходе получаю строку ‘hello world’

А если я пишу такой класс:

Python
class my_class():

def __init__(self):

self.a=“hello world”

def print_this_thing(self,this_thing=self.a):

print this_thing
То получаю ошибку:
Python
NameError: name ‘self’ is not defined NameError: name ‘self’ is not defined

line 1, in <module>
class my_class():
line 9, in my_class
def print_this_thing(self,this_thing=self.a):
Александр Кошелев
Orkshaman
То получаю ошибку:
Да. Всё верно.
Orkshaman
Daevaorn Как же по нормальному передать переменную которую я обьявляю в __init__?
Александр Кошелев
Orkshaman
Как же по нормальному передать переменную которую я обьявляю в __init__?
Например так:
class my_class():
def __init__(self):
self.a="hello world"

def print_this_thing(self,this_thing=None):
if this_thing is None:
this_thing = self.a
print this_thing
Но ту надо учесть, что в таком случае None для параметра должно быть вне области его допустимых значений - иначе получится неоднозначнсоть. Хотя и это можно обойти.
Orkshaman
Daevaorn спасибо попробую так.
This is a "lo-fi" version of our main content. To view the full version with more information, formatting and images, please click here.
Powered by DjangoBB