Уведомления

Группа в Telegram: @pythonsu

#1 Ноя. 25, 2009 00:37:41

Orkshaman
От:
Зарегистрирован: 2009-11-25
Сообщения: 7
Репутация: +  0  -
Профиль   Отправить e-mail  

Ошибка функции класса - NameError: name 'self' is not defined

Если пишу в питоне так:

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):



Отредактировано (Ноя. 25, 2009 01:03:59)

Офлайн

#2 Ноя. 25, 2009 00:52:02

Александр Кошелев
От: Москва
Зарегистрирован: 2007-02-03
Сообщения: 1724
Репутация: +  2  -
Профиль   Отправить e-mail  

Ошибка функции класса - NameError: name 'self' is not defined

Orkshaman
То получаю ошибку:
Да. Всё верно.



Офлайн

#3 Ноя. 25, 2009 00:56:34

Orkshaman
От:
Зарегистрирован: 2009-11-25
Сообщения: 7
Репутация: +  0  -
Профиль   Отправить e-mail  

Ошибка функции класса - NameError: name 'self' is not defined

Daevaorn Как же по нормальному передать переменную которую я обьявляю в __init__?



Офлайн

#4 Ноя. 25, 2009 01:03:23

Александр Кошелев
От: Москва
Зарегистрирован: 2007-02-03
Сообщения: 1724
Репутация: +  2  -
Профиль   Отправить e-mail  

Ошибка функции класса - NameError: name 'self' is not defined

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 для параметра должно быть вне области его допустимых значений - иначе получится неоднозначнсоть. Хотя и это можно обойти.



Офлайн

#5 Ноя. 25, 2009 01:05:18

Orkshaman
От:
Зарегистрирован: 2009-11-25
Сообщения: 7
Репутация: +  0  -
Профиль   Отправить e-mail  

Ошибка функции класса - NameError: name 'self' is not defined

Daevaorn спасибо попробую так.



Офлайн

Board footer

Модераторировать

Powered by DjangoBB

Lo-Fi Version