Python面向对象编程(Object-Oriented)和装饰器(decorator)

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())



  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值