1. 面向对象编程(Object-Oriented)
Python支持面向对象编程类(class):现实世界中一些事物的封装 (如:学生)
类:类本身具备的属性 (如:名字,成绩等都是学生的属性)
类对象:我们对泛指的类本身进行的一些操作
实例对象:我们把类中具体的实例拿出来作为对象
引用:通过引用对类的属性和方法进行操作
实例化:创建一个类的具体实例对象 (如:学生张三)
例:
# Python OO example面向对象编程
class Student: #通过关键词“class”在Python中创建一个类,根据习惯创建一个类时第一个字母往往要大写
#init(初始化)是Python中的一个特殊方法,当我们具体实例化一个类的时候,他会自动调用这个函数,当我们创建一个新的学生(实例)的时候,给这个学生设置一些默认的属性
def __init__(self, name, grade): #给Student这个类定义两个属性name和grade
self.name = name
self.grade = grade
def introduce(self):
print("hi! I'm " + self.name)
print("my grade is: " + str(self.grade))
def improve(self, amount):
self.grade = self.grade + amount
jim = Student("jim", 86) #创建类中一个具体的对象
jim.introduce()
jim.improve(10)
jim.introduce()
2. 装饰器(decorator)
例:
#方式一:
#Python在一个函数定义的内部可以调用另一个函数,可以做成一个嵌套的结构
def add_candles(cake_func): #传入的参数是一个函数而不是一个具体的值,这是Python中的一个特点
def insert_candles(): #在定义的函数内部重新定义一个新的函数
return cake_func() + " candles"
return insert_candles
def make_cake():
return "cake"
gift_func = add_candles(make_cake)
print(make_cake())
print(gift_func())
#方式二:
def add_candles(cake_func):
def insert_candles():
return cake_func() + " candles"
return insert_candles
def make_cake():
return "cake"
make_cake = add_candles(make_cake)
print(make_cake())
#方式三:调用装饰器
def add_candles(cake_func):
def insert_candles():
return cake_func() + " and candles"
return insert_candles
@add_candles #通过@调用装饰器
def make_cake():
return "cake"
print(make_cake())