2016-06-22 4 views
-1

は、だから私は、このようなクラスを得た:クラスで辞書を出力するにはどうしたらいいですか?

class Useraccount(): 

def __init__(self, saving, checking, PIN): 
    self.save = saving 
    self.check = checking 
    self.passwd = PIN 

私はこのような出力をしたい:

>>> a = Useraccount(2000,3000,1234) 
>>> a 
>>> {1234:[2000,3000]} 

これを達成するためにどのように、私を助けてください。

+0

dictを作成したい場合は、代わりにクラスを作成したのはなぜですか? – user2357112

答えて

1

その他の回答は、文字列表現にのみ影響する__repr__を変更します。例えば

class UserAccount(object): 

    def __init__(self, saving, checking, PIN): 
     self.save = saving 
     self.check = checking 
     self.passwd = PIN 

    def asDict(self): 
     return {self.passwd: [self.save, self.check]} 

:実際に出力辞書、あなたは特定の形式で返しますUserAccountの内のメソッドを定義することができますするには

>>> user1 = UserAccount(10, 20, 1234) 
>>> user1.asDict() 
{1234: [10, 20]} 
0

あなたはそれをプリントだフォーマットクラスに__repr__メソッドを定義することができます出力。

class Useraccount(): 

    def __init__(self, saving, checking, PIN): 
     self.save = saving 
     self.check = checking 
     self.passwd = PIN 

    def __repr__(self): 
     return '<Useraccount({pin}: [{saving}, {checking}])>'.format(pin=self.passwd, saving=self.save, checking=self.check) 

例:あなたはPython2.xを使用している場合はそう

>>> a = Useraccount(2000,3000,1234) 
>>> a 
<Useraccount(1234: [2000, 3000])> 
0

、あなたはあなたのUserAccountのクラスのオブジェクトを表すユニコードメソッドをオーバーライドする必要があります。

def __unicode__(self): 
    return '{%d: [%d,%d]}' % (self.save, self.check, self.passwd) 

およびuはPython3.x

def __str__(self) 
    return '{%d: [%d,%d]}' % (self.save, self.check, self.passwd) 
0

を使用している場合、これはあなたが記述何やっているように見える:

class Useraccount(object): 
    def __new__(cls, save, check, pin): 
     return {saving: [check, pin]} 

例:もし

a = Useraccount(2000, 3000, 1234) 
a 

Out[53]: {2000: [3000, 1234]} 

わかりませんそれは良い練習です:)

関連する問題