python 使用建议与技巧分享(四)
作者:songleo 发布时间:2021-06-29 20:43:28
标签:python,建议,技巧
这是一个系列文章,主要分享python的使用建议和技巧,每次分享3点,希望你能有所收获。
1 如何打印更易读的类
不推荐方式
class Point(object):
def __init__(self, x, y):
self.x = x
self.y = y
p = Point(3, 4)
print p
# <__main__.Point object at 0x0000000001E1B9E8>
推荐方式
class Point(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)
print p
# Point(3, 4)
前一种方式打印的类不易读,不能获取更多的信息。通过类的__repr__方法可以将类打印得更易读。或者不定义__repr__方法,直接使用下面方式打印:
print p.__dict__
# {'y': 4, 'x': 3}
使用__dict__方法,将类以字典形式打印出来,也比较易读。
2 如何将类打印成json字符串
import json
class User(object):
def __init__(self, name, id):
self.name = name
self.id = id
u = User('user1', 1)
print json.dumps(u.__dict__, indent=4)
'''
{
"name": "user1",
"id": 1
}
'''
通过json模块的dumps方法,可以轻易将类打印成json字符串。
3 如何排序类列表
class User:
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),
]
print sorted(user_list, key=lambda user: user.key)
# [User(user3, 1), User(user2, 2), User(user1, 3)]
print sorted(user_list, key=lambda user: 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),
]
print sorted(user_list, key=lambda user: (user.name, user.key))
# [User(user1, 1), User(user1, 2), User(user1, 3)]
来源:https://cloud.tencent.com/developer/article/1123062
0
投稿
猜你喜欢
- 一:文字加粗 倾斜的代码文字加粗的代码是: <b>你好</b>文字倾斜的代码是: <i>你好!</
- pip镜像源在国内如果不使用 VPN 是没办法好好使用 pip 命令安装任何 Python 包的。所以另一个选择就是使用国内各大厂的开源镜像
- 今天我想讲一讲关于Elasticsearch的索引建立,当然提前是你已经安装部署好Elasticsearch。ok,先来介绍一下Elatic
- 本文实例讲述了Python zip()函数用法。分享给大家供大家参考,具体如下:这里介绍python中zip()函数的使用:>>
- 需求背景:进行分值计算。如下图,如果只是一两个还好说,写写判断,但是如果有几十个,几百个,会不会惨不忍睹。而且,下面的还是三种情况。例如:解
- 1.lxml库简介lxml 是 Python 常用的文档解析库,能够高效地解析 HTML/XML 文档,常用于 Python 爬虫。lxml
- 本篇文档旨在介绍如何安装配置基于2台服务器的MySQL集群。并且实现任意一台服务器出现问题或宕机时MySQL依然能够继续运行。注意!虽然这是
- 在一个大型的项目中,不可避免会出现操作时间的业务,比如时间的格式化,比如时间的加减,我们一般会直接使用moment.js库来做,毕竟稳定可靠
- 在后台添加中一般我们都设置了一个“关键字”,而且一般输入可能如下: 娃娃,毛绒娃娃,日本充气娃娃 我们将根据这个来做,具体实现如下: 先看一
- 什么是分页查询分页查询就是把query到的结果集按页显示。比如一个结果集有1W行,每页按100条数据库。而你获取了第2页的结果集。为什么要分
- php cookie中不能使用点号(句号),实际上不是很严格,应该说可以使用点号的cookie名,但会被转换,你命名一个cookie:$_C
- 许多人利用Session变量来开发ASP(Active Server Pages)。这些变量与任何编程语言中通用的变量非常相似,并且具有和通
- 加载相关库import randomimport seaborn as snsimport matplotlib.pyplot as plt
- 环境:Pycharm ;其他环境:安装Anaconda最近在做一个小型项目练手,涉及到大量的IP和相关数据处理,所以选用了Python来处理
- 本文实例讲述了php中$_GET与$_POST过滤sql注入的方法,分享给大家供大家参考。具体分析如下:此函数只能过滤一些敏感的sql命令了
- 本文实例讲述了CI操作cookie的方法。分享给大家供大家参考,具体如下:CI 操作cookie 有三种方法,2中Ci自带的,其
- PHP get_html_translation_table() 函数实例输出 htmlspecialchars 函数使用的翻译表:<
- 本文实现12306抢火车票/京东抢手机示例,具体如下:#12306秒抢Python代码from splinter.browser impor
- 4款JavaScript放大镜特效脚本。准确的说,Anythingzoomer和Bezoom才是正宗的放大镜特效,当鼠标悬浮在图片上时,能放
- 前两天看见有人问静态网页加密问题,就写了这个代码稍微有些长,解释一下思路:加密时:先把用户的密钥A用md5加密为B,然后用B异或源文件S0得