3197-高言-人工智能学科-数据挖掘方向-就业:否 扫二维码继续学习 二维码时效为半小时

(0评价)
价格: 免费

实例属性

从属于实例对象的属性,也称为”实例变量“

 

[展开全文]

构造函数__init__()

__new__()方法:用来创建对象,但我们一般无需重定义该方法

__init__()方法:初始化创建好的归降,初始化指的是:给实例属性赋值

 

python对象包含三个部分:id、type、value(对象的值,包括属性和方法)

 

__init__()要点如下:

(1)名称固定,必须为:__init__()

(2)第一个参数固定,必须为self,self指的就是刚刚创建好的实例对象

(3)构造哈桑农户通常用来初始化实例对象的实例属性

[展开全文]

类的定义

把对象比作一个”饼干“,类是制造这些饼干的”模具“。在python里面,类也是一种对象 

 

类的结构

方法(函数)——>行为

属性(变量)——>状态

 

对象的结构

对象产生于类,同类的对象方法和属性一致

属性是一样的,但属性的值不一样

 

[展开全文]

对象的进化:

随着编程面临的问题越来越复杂,编程语言本身也在进化

1、简单数据

2、数组:把同类型的数据放在一起

3、结构体:将不同类型的数据放在一起,是c语言中的数据结构

4、对象:将不同类型的数据、方法(函数)放在一起,就是对象;把数据和处理方法放在一起。

 

[展开全文]

面向对象编程

python支持面向过程、面向对象、函数式编程等多种编程范式

python完全采用了面向对象的思想,是真正面向对象的编程语言,完全支持面向对象的基本功能:继承、多态、封装

面向对象编程时将数据和操作数据相关的方法封装到对象中,组织代码和数据的方式更加接近人的思维,从而大大提高了编程的效率

 

面向过程(procedure oriented)思维

面向过程编程更加关注”程序的逻辑流程“,是一种”执行者“思维,适合小规模的程序

面向对象思考方式:

遇到复杂问题是,先从问题中找名词,面向过程更多是找动词

 

面向对象和面向过程的总结:

(1)都是解决问题的思维方式,都是代码组织的方式;

(2)解决简单问题可以使用面向过程

(3)解决复杂问题:宏观上使用面向对象把我,微观处理上仍然是面向过程

 

[展开全文]

LEGB规则

在python里面查找名称的时候,按照LEGB规则查找的;local—>Enclosed—>Global—>Built in 

local   指的是函数或者类的方法内部

enclosed 指的是嵌套函数(一个函数包裹另一个函数)

Global  指的是模块中的全局变量

Built in  指的是python为自己保留的特殊名称

 

 

[展开全文]

nonlocal:用来声明外层的局部变量

global:用来声明全局变量

 

[展开全文]

嵌套函数(内部函数)

在函数内部定义的函数

优点:
(1)封装——数据隐藏

(2)避免重复代码

[展开全文]

浅拷贝和深拷贝

copy(浅拷贝):不拷贝子对象的内容,只拷贝对象的引用;

deepcopy(深拷贝):会连子对象的内存都全部拷贝一份

[展开全文]

函数也是对象,内存底层分析:

 

[展开全文]

递归函数计算阶乘

 

[展开全文]

递归函数

递归函数是指:自己调用自己的函数

 

[展开全文]

lambda表达式和匿名函数

通常用于定义简单的函数,实际也是是生成了一个函数对象;lambda表达式只包含一个表达式,不能包含复杂语句

 

[展开全文]

可变参数:

1、一个星号,将多个参数收集到一个“元组”对象中;

2、两个星号,将多个参数收集到一个“字典”对象中。

强制命名参数:

在带星号的“可变参数”后面增加新的参数,必须强制命名参数

 

[展开全文]

参数的几种类型:
1、位置参数

从位置顺序传递,需要的个数和形参匹配,按照位置的参数传递

2、默认值参数

可以为某些参数设置默认值,这些参数在传递时是可选的。

3、命名参数,也称“关键字参数”

 

[展开全文]
传递不可变对象时,包含的子对象是可变的,则方法内修改了这个可变对象,原对象也发生了变化
[展开全文]

参数的传递

从实参到形参如何赋值?python中的参数传递都是”引用传递“,不是“值传递”,具体操作分为两类:

1、对可变对象进行“写操作“,直接作用于原对象本身;

2、对”不可变对象“进行”写操作“,会产生一个新的”对象空间“,并用新的值填充

 

可变对象有:字典、列表、集合、自定义的对象

不可变的对象有:数字、字符串、元组、function

[展开全文]

局部变量和全局变量效率测试:

局部变量的查询和访问速度比全局变快,优先使用

[展开全文]