欢迎访问Ningto's博客

Menu
  • 首页
  • 归档
  • 关于
  • 书签
  • 必应壁纸
  • IT聚合
  • 工具
    • 我的工具列表
    • 我的网盘
    • 必应每日壁纸API
    • Html转Markdown
    • 仙尘光标
Menu

Effective Python

最后更新 2022-11-26 21:42:41   阅读量 172

Table of Contents

  • 1. 关于命名的建议
  • 2. 判断字符串或列表是否为空
  • 3. if-else可以用or来简化代码-适合短语句
  • 4. list切片会生成新对象-有新地址-而引用不会
  • 5. 遍历需要下标时用enumerate替代range
  • 6. 函数的参数不要是动态默认值

读Effective Python的一些练习和记录

关于命名的建议

PEP 8 建议采用不同的方式来给 Python 代码中的各个部分命名,这样在阅读代码时, 就可以根据这些名称看出它们在 Python 语言中的角色。

  • 函数、变量及属性用小写字母来拼写,各单词之间用下划线相连,例如:lowercase_underscore 。
  • 受保护的实例属性,用一个下划线开头,例如:_leading_underscore 。
  • 私有的实例属性,用两个下划线开头,例如:__double_leading_underscore 。
  • 类(包括异常)命名时,每个单词的首字母均大写,例如:CapitalizedWord 。
  • 模块级别的常量,所有字母都大写,各单词之间用下划线相连,例如:ALL_CAPS 。
  • 类中的实例方法,应该把第一个参数命名为 self,用来表示该对象本身。
  • 类方法的第一个参数,应该命名为 cls,用来表示这个类本身。

判断字符串或列表是否为空

# 字符串
if len(s) == 0
# 列表
if len(ls) == 0

建议

# 不为空
if s
# 为空
if not s

if else可以用or来简化代码(适合短语句)

如果or左边成立(整型不为0,字符串、列表不为空等)右边就不执行

a = b or c

list切片会生成新对象,有新地址,而引用不会

    a = [1, 2, 3]
    b = a
    c = a[:]
    a[0] = 'A'
    print(a) # ['A', 2, 3]
    print(b) # ['A', 2, 3]
    print(c) #[1, 2, 3]

遍历需要下标时用enumerate替代range

    a = [x*100 for x in range(1, 10) if x % 2 == 0]
    for i, ele in enumerate(a):
        print(i, ele)
    print('enumerate替代range')
    for i in range(len(a)):
        print(i, a[i])
输出:
0 200
1 400
2 600
3 800

函数的参数不要是动态默认值

def print_now(t=datetime.now()):
    print(t)

print_now()
time.sleep(1)
print_now()

输出:
2022-11-26 21:30:39.749402
2022-11-26 21:30:39.749402

可以这样写:
def print_now(t=None):
    t = t or datetime.now()
    print(t)
(转载本站文章请注明作者和出处:泞途 - ningto.com)

下一篇 – Mac、linux安装brew终极办法
上一篇 – Python的几种函数参数类型

  1. Python

toningto@outlook.com

推荐文章

Effective Python

Python的几种函数参数类型

标签云

MongoDB Mobile Boost Javascript Android Bug Mac Qt Windows Go Shell IOS Others Java Tools Design Tips Product Database Node.js Linux Python C/C++ Web MQ Life React

推广链接

【腾讯云】云产品限时秒杀,爆款1核2G云服务器,首年99元

多谢支持,用了好几年,服务很稳定支持多设备!

其他

文章RSS

Copyright © 2016 Welcome To Ningto Blog | 鄂ICP备17003086号-2