嵌套函数
定义在函数内部的函数
什么时候用?1、封装数据隐藏
2、嵌套函数
3、闭包
nonlocal 声明外层局部变量
LEGB规则
查找的顺序按照
local(方法内部)--> enclose(嵌套空间)--> global(全局变量) -->built in (python为自己保留的特殊名字)
面向过程与面向对象
过程:更注重“程序的逻辑流程”,”执行者思维“,适合编写小规模程序,比如说如何开车
对象:大规模程序,“设计者思维”,比如说如何造车
对象
对象:不同类型的数据,方法(函数)放到一起
类
把对象比作“饼干”,类就是制作饼干的“模具”
class Student: #类名一般首字母大写,多个单词采用驼峰原则
def __init__(self,name,score): #self必须位于第一个参数
self.name = name
self.score = score
def say_score(self): #self必须位于第一个参数
print("{0}的分数是:{1}".format(self.name,self.score))
s1 = Student("高淇",18) #通过类名()调用构造函数
s1.say_score()
构造函数__init()__
1、名字固定,必须为___init()__
2、第一个参数固定,必须为self
3、用来初始化实例对象的实例属性
实例属性
实例方法
其他操作
创建类和对象的底层
类方法
格式:
静态方法
格式:
__del__() ”析构方法“,对象被销毁时的操作,比如:释放占用的资源,打开的文件资源,网络连接
__call__() “可调用对象” ,该对象可以像函数一样被调用