Python 如何在类中输出词典?
所以我上了这样的课:Python 如何在类中输出词典?,python,Python,所以我上了这样的课: 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]} 我想要这样的输出:
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]}
我想要这样的输出:
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]}
如何实现这一点,请帮助我。其他答案修改了
\uuuu repr\uuu
,这只会影响字符串表示。要实际输出字典,可以在UserAccount中定义以特定格式返回的方法:
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]}
例如:
>>> user1 = UserAccount(10, 20, 1234)
>>> user1.asDict()
{1234: [10, 20]}
您可以在类上定义一个格式化打印输出的
\uuuuu repr\uuuu
方法
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)
class Useraccount():
定义初始化(自、保存、检查、PIN):
self.save=保存
自我检查
self.passwd=PIN
定义报告(自我):
返回“”。格式(pin=self.passwd,saving=self.save,checking=self.check)
例如:
>>> a = Useraccount(2000,3000,1234)
>>> a
<Useraccount(1234: [2000, 3000])>
a = Useraccount(2000, 3000, 1234)
a
Out[53]: {2000: [3000, 1234]}
>a=Useraccount(200030001234)
>>>a
因此,如果您使用的是Python2.x,那么您应该重写unicode方法来表示Useraccount类的对象
def __unicode__(self):
return '{%d: [%d,%d]}' % (self.save, self.check, self.passwd)
如果你使用的是Python3.x
def __str__(self)
return '{%d: [%d,%d]}' % (self.save, self.check, self.passwd)
这似乎在做你描述的事情:
class Useraccount(object):
def __new__(cls, save, check, pin):
return {saving: [check, pin]}
例如:
>>> a = Useraccount(2000,3000,1234)
>>> a
<Useraccount(1234: [2000, 3000])>
a = Useraccount(2000, 3000, 1234)
a
Out[53]: {2000: [3000, 1234]}
不确定这是否是一个好的实践:)如果你想写一个dict,为什么要写一个类呢?