你需要改掉的Python开发习惯(五)

1、使用import *:

form itertools import *

count()

使用“import *”会和带有变量的命名空间重合,使程序报错,建议需要使用什么接口就import相关接口:

from itertools import count

count()

2、依赖结构项目的特定目录:

from nearby_module import awesome_function

def main():
	awesome_function()

if __name__ == '__main__'
	main()

如果你的python代码在很多的不同目录中,这样会不太利于接口的调用,幸好python支持目录索引的方式,所以建议你将需要调用的接口打包到一个相同功能的目录下:

from xxpackage.nearby_module import awesome_function

def main():
	awesome_function()

if __name__ == '__main__'
	main()

3、很多人认为python不用编译的:

def function():
	#DO SOMETHING

但事实是在.py文件边上有一些.pyc文件或者在__pycache__目录中,这些都是编译好的python文件,python确实是解释性语言,它的编译结果是字节码,而不是机器码。通过解释字节码运行代码。
4、不需要遵循PEP8:

def function():
	x = (1, 2)
	y = 5
	l = [1, 2, 3]
	
	def func(x = 5)
		#DO SOMETHING

PEP8规则链接
PEP8只是一个规则,就算不遵守也不影响代码的运行。估计身边会有人让你遵守这个规则,但我觉得只要不是公司规定的,随他去吧,自己开心就好。
5、用python2做任何事情:

def function():
	x = 10000000000000
	print(x in range(2 * x))
	
	d = {"a": 1, "b": 2, "c": 3}
	keys = d.keys()
	del d["a"]
	print("a" in keys)

目前python3已经出现很久了,但是可能你的代码中还有大量的python2,这个时候迁移的工作量会很大,所以python2目前还是有一定的保有量在使用的。当然新项目肯定是使用python3了,python3新增了很多新特性。对于python2,上面的代码中x这么大,后面的range居然还能执行。还有就是keys的变化,不再是一个copy,它仅仅是一个view。所以最后我想说,python3的变化是前所未有的,但是老项目用python2也很难直接签到python3

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值