Уведомления

Группа в Telegram: @pythonsu

#1 Янв. 11, 2015 23:32:19

kpotko
Зарегистрирован: 2015-01-07
Сообщения: 21
Репутация: +  1  -
Профиль   Отправить e-mail  

список экземпляров класса

Ребят, нужна ваша помощь :
Есть класс , у которого есть 2 свойства
есть список
нужно при создании объекта добавить его в список, а потом в цикле вызвать метод этих объектов.

Офлайн

#2 Янв. 11, 2015 23:38:52

Alex_HH
Зарегистрирован: 2014-03-03
Сообщения: 91
Репутация: +  13  -
Профиль   Отправить e-mail  

список экземпляров класса

код



————–
Зимой и летом heavy metall.
Технический прогресс - это падение вверх. Alex_HH (с)
Эстетизация жестокости есть квинтэссенция смысла человеческого существования. Alex_HH (с)
После бога идет не пустота, там метаданные. Alex_HH (с)

Офлайн

#3 Янв. 11, 2015 23:51:21

kpotko
Зарегистрирован: 2015-01-07
Сообщения: 21
Репутация: +  1  -
Профиль   Отправить e-mail  

список экземпляров класса


class State(object):    
    
    def __init__ (self,country,capital):
        self.country = country
        self.capital = capital    
        self.mas = []
    def print_out(self) :
        print "The capital of",self.country,"is",self.capital
obj1 = State("Russia","Moskow")
obj1.print_out()
print
obj1.mas.append(obj1.country)
obj1.mas.append(obj1.capital)

Офлайн

#4 Янв. 11, 2015 23:57:32

terabayt
От: Киев
Зарегистрирован: 2011-11-26
Сообщения: 1099
Репутация: +  103  -
Профиль   Отправить e-mail  

список экземпляров класса

я не пойму что вы хотите сделать, но я бы сделал так

class State(object):    
    def __init__ (self,country,capital):   
        self.mas = (country, capital)
    def print_out(self) :
        print "The capital of %s is %s" % self.mas
obj1 = State("Russia","Moskow")
obj1.print_out()



————————————————
-*- Simple is better than complex -*-

Офлайн

#5 Янв. 11, 2015 23:59:31

kpotko
Зарегистрирован: 2015-01-07
Сообщения: 21
Репутация: +  1  -
Профиль   Отправить e-mail  

список экземпляров класса

terabayt
я не пойму что вы хотите сделать, но я бы сделал так
я хочу из списка экземпляров вызывать методы этого экземпляра .
т.е. в список забить к примеру 5 стран, и в цикле вызвать print_out() для всех сразу

Офлайн

#6 Янв. 12, 2015 00:01:57

Alex_HH
Зарегистрирован: 2014-03-03
Сообщения: 91
Репутация: +  13  -
Профиль   Отправить e-mail  

список экземпляров класса

obj1 = State("Russia","Moskow")
array = [obj1]
for i in array:
    i.print_out()

зачем это в классе делать?



————–
Зимой и летом heavy metall.
Технический прогресс - это падение вверх. Alex_HH (с)
Эстетизация жестокости есть квинтэссенция смысла человеческого существования. Alex_HH (с)
После бога идет не пустота, там метаданные. Alex_HH (с)

Офлайн

#7 Янв. 12, 2015 00:24:34

Alex_HH
Зарегистрирован: 2014-03-03
Сообщения: 91
Репутация: +  13  -
Профиль   Отправить e-mail  

список экземпляров класса

array = [State(str(i), str(i/10)) for i in range(10)]
for i in array:
    i.print_out()
 
 
 
 
===  OUTPUT ===
The capital of 0 is 0.0
The capital of 1 is 0.1
The capital of 2 is 0.2
The capital of 3 is 0.3
The capital of 4 is 0.4
The capital of 5 is 0.5
The capital of 6 is 0.6
The capital of 7 is 0.7
The capital of 8 is 0.8
The capital of 9 is 0.9
[Finished in 0.2s]

Так вообще правильней будет.



————–
Зимой и летом heavy metall.
Технический прогресс - это падение вверх. Alex_HH (с)
Эстетизация жестокости есть квинтэссенция смысла человеческого существования. Alex_HH (с)
После бога идет не пустота, там метаданные. Alex_HH (с)

Офлайн

#8 Янв. 12, 2015 03:06:41

GreyZmeem
От: Киев
Зарегистрирован: 2013-12-03
Сообщения: 147
Репутация: +  34  -
Профиль   Отправить e-mail  

список экземпляров класса

class State(object):
    class_instances = []
 
    def __init__(self, country, capital):
        self.country = country
        self.capital = capital
        self.class_instances.append(self)
 
    @classmethod
    def print_out(cls):
        for state in cls.class_instances:
            print u'The capital of {} is {}'.format(state.capital, state.country)
 
State('Russia', 'Moscow')
State('Ukraine', 'Kiev')
State('Belarus', 'Minks')
State.print_out()

Отредактировано GreyZmeem (Янв. 12, 2015 03:13:27)

Офлайн

#9 Янв. 12, 2015 17:35:29

kpotko
Зарегистрирован: 2015-01-07
Сообщения: 21
Репутация: +  1  -
Профиль   Отправить e-mail  

список экземпляров класса

GreyZmeem
Спасибо большое
Можете еще подсказать?
если мы добавляем класс наследник, у которого будет не 2, а уже 3 свойства, то как нам его экземпляр добавить в данный список?

Офлайн

#10 Янв. 12, 2015 21:25:42

GreyZmeem
От: Киев
Зарегистрирован: 2013-12-03
Сообщения: 147
Репутация: +  34  -
Профиль   Отправить e-mail  

список экземпляров класса

State.class_instances.append(…)
Вы можете описать для чего вам сохранять все создаваемые объекты (да еще и в классах потомках)? Мне кажется что вы сильно усложняете себе задачу, когда действительно можно, как написал Alex_HH, все сохранять в обычный list.

Офлайн

Board footer

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

Powered by DjangoBB

Lo-Fi Version