1、闭包
闭包是函数里面嵌套函数,外层函数返回里层函数,这种情况称之为闭包,内函数调用外部函数的变量,外函数返回内函数的调用
def dome1():
a = 100
def dome2():
return a + a
return dome2
a = dome1() # a存的是dome2的函数体,<function dome1.<locals>.dome2 at 0x000001EC7E472940>
print(a()) # 相当于调用函数dome2
2、递归
在函数内部调用自身本身,这个就是递归函数,递归函数要有出口,没有出口会出现内存溢出
def funs(n):
if n==1:
return 1
return n+funs(n-1)
print(funs(4))
3、类
类:用来描述具有相同的属性和方法的对象的集合,包含类名、属性和方法(类属性、类方法不是必须的,需不需要取决于程序设计),类名一般用单驼峰(Myperson)或双驼峰(MyPerson)表示
# 类的定义
class Myperson: # 类名
name='sunwukong' # 属性
age='500' # 属性
def fly(self): # 方法
print('我能飞超级远')
# 类的实例化(类的使用)
sunwukong=Myperson()
4、构造方法
通过init()方法来实现,如果类里面没有写init方法,Python会自动创建,不需要做任何操作,如果要实现添加自己的一些属性,就需要自己定义,一个类里面无论是自己写还是系统自动创建,一定要有init这个方法
class Person:
def __init__(self,name):
print(f'{name}构造方法')
p1=Person('我是第一个')
p2=Person('我是第二个')
#
我是第一个构造方法
我是第二个构造方法
5、析构方法
通过del方法实现的,是一种特殊的方法,用在对象被销毁时执行一些清理操作,如资源释放等,当对象被销毁时,无论是程序结束还是对象被手动删除,Python解释器都会自动调这个方法。
凡是以--开头--结尾的方法统称为魔法方法
6、定义一个长方形类,绑定长和宽这两个属性,创造一个计算面积的方法。
class Rectangle:
def __init__(self, length, width):
self.length = length
self.width = width
def area(self):
return self.length * self.width
reactangle_area = Rectangle(3,4)
print(f'长方形的面积是:{reactangle_area.area()}')