美文网首页
Python 那些不为人知的冷知识

Python 那些不为人知的冷知识

作者: 有用教育 | 来源:发表于2019-08-08 17:36 被阅读0次

1、默认参数最好不为可变对象

函数的参数分三种

可变参数

默认参数

关键字参数

Python 中的 def 语句在每次执行的时候都初始化一个函数对象,这个函数对象就是我们要调用的函数,可以把它当成一个一般的对象,只不过这个对象拥有一个可执行的方法和部分属性。

对于参数中提供了初始值的参数,由于 Python 中的函数参数传递的是对象,也可以认为是传地址,在第一次初始化 def 的时候,会先生成这个可变对象的内存地址,然后将这个默认参数 item_list 会与这个内存地址绑定。

在后面的函数调用中,如果调用方指定了新的默认值,就会将原来的默认值覆盖。如果调用方没有指定新的默认值,那就会使用原来的默认值。

2、访问类中的私有方法

大家都知道,类中可供直接调用的方法,只有公有方法(protected类型的方法也可以,但是不建议)。也就是说,类的私有方法是无法直接调用的。

# 调用私有方法,以下两种等价

ins._Kls__private()

ins.call_private()

3、时有时无的切片异常

这是个简单例子

my_list = [1, 2, 3, 4, 5]

print(my_list[5])

执行一下,和我们预期的一样,会抛出索引异常。

Traceback (most recentcalllast):

File"F:/Python Script/test.py", line2,in

print(my_list[5])

IndexError:listindexoutofrange

4、哪些情况下不需要续行符

为了实现高可读性的代码,我们常常使用到的就是续行符\。

经过总结,在这些符号中间的代码换行可以省略掉续行符:[],(),{}

>>> my_list=[1,2,3,

...4,5,6]

>>> my_tuple=(1,2,3,

...4,5,6)

>>> my_dict={"name":"MING",

..."gender":"male"}

一样的,在以下这些场景也同样适用

类,和函数的定义。

列表推导式,字典推导式,集合推导式,生成器表达式。

相关文章

网友评论

      本文标题:Python 那些不为人知的冷知识

      本文链接:https://www.haomeiwen.com/subject/fhcfjctx.html