自学python第八天

Python面向对象编程知识点

1. 初识对象

对象是Python编程中的基本单元,代表现实世界中的实体。每个对象都具有:

属性(数据):描述对象的特征

方法(函数):描述对象的行为

例如,"汽车"可以视为一个对象,其属性包括颜色、型号、排量等,方法包括启动、加速、刹车等。

2. 成员方法

成员方法是定义在类中的函数,用于描述对象的行为。与普通函数的区别是:

第一个参数通常是self,代表调用该方法的对象本身

必须通过对象或类来调用

示例:

class Person:

    def say_hello(self):

        print("Hello!")

3. 类和对象

类是对象的模板或蓝图,定义了对象的属性和方法;对象是类的实例。

创建类和对象的示例:

# 定义类

class Dog:

    # 类属性

    species = "哺乳动物"

    

    # 成员方法

    def bark(self):

        print("汪汪叫")

# 创建对象(实例化)

my_dog = Dog()

your_dog = Dog()

一个类可以创建多个对象,每个对象都是独立的个体。

4. 构造方法

构造方法(__init__)是一种特殊方法,在创建对象时自动调用,用于初始化对象的属性。

示例:

class Person:

    # 构造方法

    def __init__(self, name, age):

        self.name = name  # 实例属性

        self.age = age

    

    def introduce(self):

        print(f"我叫{self.name},今年{self.age}岁")

# 创建对象时传入参数

person1 = Person("张三", 20)

person1.introduce()  # 输出:我叫张三,今年20岁

5. 其他内置方法

Python提供了许多内置方法,用于实现对象的特殊行为:

__str__:返回对象的字符串表示,用于print()函数

__repr__:返回对象的官方字符串表示,用于调试

__len__:返回对象的长度,用于len()函数

__add__:定义加法运算

__eq__:定义相等比较

示例:

class Book:

    def __init__(self, title, pages):

        self.title = title

        self.pages = pages

    

    def __str__(self):

        return f"《{self.title}》"

    

    def __len__(self):

        return self.pages

book = Book("Python编程", 300)

print(book)  # 输出:《Python编程》

print(len(book))  # 输出:300

6. 封装

封装是将数据和操作数据的方法捆绑在一起,并对外部隐藏内部实现细节的机制。

Python通过命名约定实现封装:

单下划线_开头:表示受保护的成员,建议外部不要访问

双下划线__开头:表示私有成员,会触发名称修饰,外部不能直接访问

示例:

class BankAccount:

    def __init__(self, balance):

        self.__balance = balance  # 私有属性

    

    def deposit(self, amount):

        if amount > 0:

            self.__balance += amount

    

    def get_balance(self):

        return self.__balance

account = BankAccount(1000)

# print(account.__balance)  # 错误,不能直接访问私有属性

print(account.get_balance())  # 正确,通过方法访问

7. 继承

继承允许创建一个新类(子类),继承另一个类(父类)的属性和方法,从而实现代码复用和扩展。

示例:

# 父类

class Animal:

    def eat(self):

        print("吃东西")

    

    def sleep(self):

        print("睡觉")

# 子类,继承自Animal

class Dog(Animal):

    def bark(self):

        print("汪汪叫")

# 子类对象可以调用父类的方法

dog = Dog()

dog.eat()  # 输出:吃东西

dog.bark()  # 输出:汪汪叫

Python支持多继承,一个类可以同时继承多个父类。

8. 类型注解

类型注解是Python 3.5+引入的特性,用于指定变量、函数参数和返回值的类型,提高代码的可读性和可维护性。

示例:

def add(a: int, b: int) -> int:

    return a + b

name: str = "张三"

age: int = 20

scores: list[float] = [90.5, 88.0, 95.5]

类型注解不会影响代码的运行,主要用于静态类型检查和代码提示。

9. 多态

多态是指不同类的对象对同一方法调用做出不同响应的能力,通常与继承结合使用。

示例:

class Cat:

    def make_sound(self):

        print("喵喵叫")

class Dog:

    def make_sound(self):

        print("汪汪叫")

class Duck:

    def make_sound(self):

        print("嘎嘎叫")

# 多态体现:同一方法调用,不同对象有不同响应

def animal_sound(animal):

    animal.make_sound()

animal_sound(Cat())  # 输出:喵喵叫

animal_sound(Dog())  # 输出:汪汪叫

animal_sound(Duck())  # 输出:嘎嘎叫

多态提高了代码的灵活性和扩展性,使得程序更容易维护和扩展。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值