【Python训练营打卡】day29 @浙大疏锦行

DAY 29 复习日

知识点回顾

1.  类的装饰器

2.  装饰器思想的进一步理解:外部修改、动态

3.  类方法的定义:内部定义和外部定义

作业:复习类和函数的知识点,写下自己过去29天的学习心得,如对函数和类的理解,对python这门工具的理解等,未来再过几个专题部分我们即将开启深度学习部分。

函数

一、函数定义的基本语法

def 函数名(参数列表):
    """文档字符串(可选):说明函数的功能、参数、返回值等"""
    # 函数体:具体执行的代码逻辑
    语句1
    语句2
    ...
    [return 返回值]  # 可选,无返回值时默认返回 None

二、函数框架的核心组成部分

1. 函数名

  • 作用:标识函数,需符合 Python 变量命名规则(字母、数字、下划线,不能以数字开头,区分大小写)。
  • 规范:见名知意,通常用小写字母和下划线组合(如 calculate_sumparse_data)。

2. 参数列表

  • 作用:接收调用者传递的数据,分为以下几类:

    • 必选参数:调用时必须传递的参数(位置参数)。
    • 默认参数:有默认值的参数,调用时可省略。
    • 可变参数
      • *args:接收任意数量的 位置参数,存储为元组
      • **kwargs:接收任意数量的 关键字参数,存储为字典
    • 仅限关键字参数:参数列表中*之后的参数,必须通过关键字传递。

参数顺序:

def func(必选参数, 默认参数=默认值, *args, 仅限关键字参数, **kwargs):
    pass

装饰器(修改函数行为)

def decorator(func):
    def wrapper():
        print("前置逻辑")
        func()
        print("后置逻辑")
    return wrapper

@decorator  # 等价于 hello = decorator(hello)
def hello():
    print("Hello, World!")

hello()  # 调用时执行:前置逻辑 → 函数本体 → 后置逻辑
装饰器的执行时机
  • 装饰器在类或函数定义时立即执行,而非调用时。例如
def decorator(cls):
    print("装饰器执行!")
    return cls

@decorator
class MyClass: pass  # 输出:装饰器执行!(定义时执行)

类与对象

1. 面向对象编程(OOP)基础
  • 类(Class):定义对象的模板,包含属性(数据)和方法(行为)。
  • 对象(Object):类的实例,通过实例化类创建(如 obj = ClassName())。
  • 三大特性
    • 封装:将数据和方法包装在类中,通过 self 访问实例属性。
    • 继承:子类继承父类的属性和方法(如 class Child(Parent):),支持多继承。
    • 多态:不同子类对象对同一方法有不同实现(如鸭子类型)。
2. 类的核心组成
  • 构造方法__init__(self, ...),用于初始化实例属性。
  • 实例方法:默认第一个参数为 self,操作实例属性(如 def method(self):)。
  • 类方法:用 @classmethod 装饰,第一个参数为 cls,操作类属性(如 @classmethod def class_method(cls):)。
  • 静态方法:用 @staticmethod 装饰,无默认参数,与类 / 实例无关(如 @staticmethod def static_method():)。
  • 属性(Property):用 @property 装饰,将方法伪装成属性调用(如只读属性)。
3. 继承与多态
  • 单继承:子类继承单个父类:
class Animal:
    def speak(self):
        raise NotImplementedError  # 强制子类实现

class Dog(Animal):
    def speak(self):  # 重写父类方法
        return "Woof"
  • 多继承:子类继承多个父类(需注意菱形继承的优先级问题):
class A: pass
class B(A): pass
class C(A): pass
class D(B, C): pass  # D 的 MRO 顺序为 D -> B -> C -> A -> object

@浙大疏锦行

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值