Уведомления

Группа в Telegram: @pythonsu

#1 Авг. 3, 2012 13:46:32

Elena
Зарегистрирован: 2012-08-01
Сообщения: 12
Репутация: +  0  -
Профиль   Отправить e-mail  

классы

Написан такой класс (написан как отдельный модуль)

class log(object):
    def __init__ (self, name, depths, values):
        self.name = 'name'
        self.depths = depths  
        self.values = values 

в другом модуле я использую этот класс, точнее атрибуты класса. Мне сказали их нужно объявить (depths и values ). Но при объявлении этих атрибутов мне выдается ошибка.

depths = Programms.log.depths

Programms - это пакет где находится класс log

ошибка:
type object 'make_log' has no attribute 'depths'

Что я не так делаю?

Офлайн

#2 Авг. 3, 2012 14:07:56

Soteric
От:
Зарегистрирован: 2010-09-19
Сообщения: 352
Репутация: +  20  -
Профиль   Отправить e-mail  

классы

В вашем случае depths это атрибут экземпляра класса, а не самого класса. Должно быть так:

class log(object):
depths = 0
def __init__ (self, name, values):
self.name = 'name'
self.values = values
Если конечно это то, что вы имеете ввиду и понимаете разницу между классом и его instances (экземплярами).



Офлайн

#3 Авг. 4, 2012 10:54:05

FishHook
От:
Зарегистрирован: 2011-01-08
Сообщения: 8312
Репутация: +  568  -
Профиль   Отправить e-mail  

классы

Elena
class log(object):
    def __init__ (self, name, depths, values):
        self.name = 'name'
        self.depths = depths  
        self.values = values


Елена, этот код бредовый. Ваш инит принимает параметр name, который Вы никак не используете, зачем тогда Вы его запихали в параметры?
self.name = 'name'
всегда (!!!) будеn == ‘name’ не зависимо от того, что Вы передадите в параметре name.



Офлайн

Board footer

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

Powered by DjangoBB

Lo-Fi Version