Python 再学习3

深拷贝和浅拷贝

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

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

 

== 和is

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

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

 

浅拷贝:

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

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

Python 再学习3

Python 再学习3

 

深拷贝:

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

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

Python 再学习3 

 

对象属性的定义及访问

变量规则:

xx:共有变量

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

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

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

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

 

property和属性的访问

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

原始的方法:

Python 再学习3

使用property注解取代getter和setter:

Python 再学习3

 

 

python內建属性和函数

常用內建属性:

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

Python 再学习3

常用內建函数:

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

range:

数组生成器

使用:range(start,stop,step)

Python 再学习3

Python 再学习3

map:

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

map(function,sequence) -> list

Python 再学习3

eg:

Python 再学习3

filter:

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

filter(function or None , sequence) ->list

Python 再学习3

eg:

Python 再学习3

reduce:

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

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

Python 再学习3

eg:

Python 再学习3

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

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

 

sorted:

排序

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

eg:

Python 再学习3

排序的都是iterable类型的对象

 

常用的工具库

标准库:

Python 再学习3

Python 再学习3

常用扩展库

Python 再学习3

Python 再学习3

 

相关文章:

  • 2021-09-15
  • 2021-12-31
  • 2021-10-09
  • 2022-12-23
  • 2021-11-28
  • 2021-11-28
猜你喜欢
  • 2021-08-23
  • 2021-10-09
  • 2021-12-09
  • 2021-06-01
  • 2021-06-22
  • 2021-11-18
  • 2021-04-16
相关资源
相似解决方案