我是一名经验丰富的python开发人员,仍然会自己编写正确但非语音的代码.我认为看到人们编写的python代码的小例子在某种程度上与普遍优先的做事方式发生冲突可能具有启发性和娱乐性.
我对您实际编写的代码感兴趣而不是发明示例.这是我的一个:在代码中期望一个可能为空的序列或我没有的序列
if data is not None and len(data) > 0:
我后来把它减少到了
if data:
更简单的版本允许额外的真值,如True或10,但这没关系,因为调用者犯了一个错误,并将从if中的语句中获得异常.
我发现手动类型检查最"unpythonic"(虽然通常也很糟糕).有两种常见的情况被滥用.第一种是当函数的逻辑根据参数的类型而不同时.例如:
def doStuff (myVar): if isinstance (myVar, str): # do stuff pass elif isinstance (myVar, int): # do other stuff pass
第二个是当程序员尝试创建一个强类型函数,就像你期望在静态类型语言中找到的一样.
def doStuff (myVar): if not isinstance (myVar, int): raise TypeError ('myVar must be of type int')
一些可以从类C语言继承的非语言习惯:
1)不必要的分号:
printf "Hello world";
2)不必要的指数:
# Bad for i in range(len(myList)): print myList[i] # Good for item in myList: print item