python 使用建议与技巧分享(四)
这是一个系列文章,主要分享python的使用建议和技巧,每次分享3点,希望你能有所收获。
1如何打印更易读的类
不推荐方式
classPoint(object): def__init__(self,x,y): self.x=x self.y=y p=Point(3,4) printp #<__main__.Pointobjectat0x0000000001E1B9E8>
推荐方式
classPoint(object):
def__init__(self,x,y):
self.x=x
self.y=y
def__repr__(self):
return'Point({self.x},{self.y})'.format(self=self)
p=Point(3,4)
printp
#Point(3,4)
前一种方式打印的类不易读,不能获取更多的信息。通过类的__repr__方法可以将类打印得更易读。或者不定义__repr__方法,直接使用下面方式打印:
printp.__dict__
#{'y':4,'x':3}
使用__dict__方法,将类以字典形式打印出来,也比较易读。
2如何将类打印成json字符串
importjson
classUser(object):
def__init__(self,name,id):
self.name=name
self.id=id
u=User('user1',1)
printjson.dumps(u.__dict__,indent=4)
'''
{
"name":"user1",
"id":1
}
'''
通过json模块的dumps方法,可以轻易将类打印成json字符串。
3如何排序类列表
classUser:
def__init__(self,name,key):
self.name=name
self.key=key
def__repr__(self):
return'User({self.name},{self.key})'.format(self=self)
user_list=[
User('user1',3),
User('user2',2),
User('user3',1),
]
printsorted(user_list,key=lambdauser:user.key)
#[User(user3,1),User(user2,2),User(user1,3)]
printsorted(user_list,key=lambdauser:user.name)
#[User(user1,3),User(user2,2),User(user3,1)]
这里排序的方法和字典排序类似,第一种是按user的key升序排序,第二种是按user的name升序排序。其实还支持名字相同,再按key进行排序,如下:
user_list=[
User('user1',3),
User('user1',2),
User('user1',1),
]
printsorted(user_list,key=lambdauser:(user.name,user.key))
#[User(user1,1),User(user1,2),User(user1,3)]
以上就是python使用建议与技巧分享(四)的详细内容,更多关于python建议与技巧的资料请关注毛票票其它相关文章!
声明:本文内容来源于网络,版权归原作者所有,内容由互联网用户自发贡献自行上传,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任。如果您发现有涉嫌版权的内容,欢迎发送邮件至:czq8825#qq.com(发邮件时,请将#更换为@)进行举报,并提供相关证据,一经查实,本站将立刻删除涉嫌侵权内容。