Python 再学习3

Python 再学习3

深拷贝和浅拷贝

浅拷贝:仅仅是拷贝了对象的在内存中的引用

深拷贝:在内存重新建个对象,将内容拷贝过来

== 和is

is比较两个引用是否指向通过各对象

==比较两个对象是否相等

浅拷贝:

其实就是一个赋值操作,将对象的引用传给一个变量。

除了一般的赋值之外我们还可以使用copy包中的copy函数来实行


深拷贝:

是对一个对象所有层次的拷贝

我们可以用copy包中的deepcopy实现:

 

对象属性的定义及访问

变量规则:

xx:共有变量

_x:单前置下划线,私有属性或方法。仅类对象和子类可以访问。Import导入包时不会被导入

__xx:双前置下划线,避免与子类中的属性明明冲突,无法在外部直接访问。子类也无法访问

__xx__:双前后下划线,用户命名空间的魔法对象或属性

xx_: 单后置下划线,用于避免与python关键字冲突

property和属性的访问

对于属性,想暴露出去的属性,我们还是用getter和setter的方法最好,保证封装性。

原始的方法:

使用property注解取代getter和setter:

python內建属性和函数

常用內建属性:

就是类中的自带的魔法属性


常用內建函数:

在启动python解释器的时候,python会自动加载默认的函数。

range:

数组生成器

使用:range(start,stop,step)


map:

根据提供的函数对指定序列做映射

map(function,sequence) -> list

eg:

filter:

会对指定的序列执行过滤操作

filter(function or None , sequence) ->list

eg:

reduce:

按照一定规则对参数序列中元素进行积累

reduce(function ,sequence[,initial]) ->value

eg:


中间的+当然也可以改成*或者别的负号,function是鸡肋规则,x表示上一次的值,y表示当前值。

这个函数在python2中是內建,在python3中放在了functools包中

sorted:

排序

sorted(iterable,cmp=None, key =None,reverse= False)

eg:

排序的都是iterable类型的对象

常用的工具库

标准库:


常用扩展库


猜你喜欢

转载自blog.csdn.net/u011486491/article/details/79107545