2013-12-12 4 views
-5

Сначала мы можем добавить объект в словарь python? Во-вторых, как мы можем напечатать атрибут объекта. Есть мои кодыПечать атрибута объекта из словаря -python

в моем c.py

class C(object): 
    def __init__(self): 
     self.wage = 0.0 
    def setwage(self,wage): 
     self.wage=wage 
    def getwage(self): 
     return self.wage 

в моем a.py

import c 
dustin = c.C() 

dustin.setwage(6.9) 
dic={} 

# can I add dustin as an object into dic? 
dic['1st employee']=dustin 

for a in dic.items(): 
    # I want to print dustin object's attribute wage 
    print("wage:", a.getwage()) 
+0

Как вы можете иметь такую ​​высокую репутацию и не можете решить что-то столь же простое, как это? –

+1

@JamesMills Один * отредактированный * вопрос не тот * спросил * – alko

+0

О, я вижу ?! Я так смущен :) –

ответ

2

Вы были почти там; Вы хотите, чтобы перебрать словарь значения:

for a in dic.values(): 
    print("wage:", a.getwage()) 

В качестве альтернативы, когда цикл из пунктов словаря, чтобы использовать тот факт, что каждый элемент является кортеж с (key, value):

for key, value in dic.items(): 
    print(key, "wage:", value.getwage()) 

Итак, да, вы можете хранить экземпляры в словарях (большинство python использует этот факт).

Обратите внимание, что геттеры и сеттеры на самом деле не нужны в Python; Вы можете упростить код:

class C(object): 
    def __init__(self): 
     self.wage = 0.0 

, а затем использовать:

dustin = c.C() 

dustin.wage = 6.9 
dic = {} 

dic['1st employee'] = dustin 

for key, value in dic.items(): 
    print(key, "wage:", value.wage) 

например напрямую войдите в атрибут wage.

+0

Я обновил предыдущий вопрос. Добавьте еще один файл. Теперь я хочу распечатать список из словаря, который я создал ранее. http://stackoverflow.com/questions/20551917/print-list-in-a-dictionary-python – user3095795

Смежные вопросы