6.python面向对象编程

Python 是一门面向对象的编程语言,支持类、对象、封装、继承和多态等面向对象编程特性。

类: 在 Python 中,通过 class 关键字定义一个类,例如:

class MyClass:
    # 类的代码块
    pass

类通常包含属性和方法两个部分,其中属性是类的成员变量,而方法则是类的成员函数。属性和方法都可以通过 . 运算符进行访问,例如:

class Person:
    def __init__(self, name):
        self.name = name  # 属性

    def say_hello(self):
        print(f"Hello, {self.name}!")  # 方法

person = Person("Tom")
person.say_hello()  # 调用方法
print(person.name)  # 访问属性

封装:

Python 支持将属性和方法封装起来,使其不被外部直接访问,从而保护数据安全。封装通常通过属性和方法的访问权限来实现,例如:

class Person:
    def __init__(self, name, age):
        self.__name = name  # 私有属性
        self.__age = age

    def get_name(self):
        return self.__name  # 公有方法访问私有属性

    def set_age(self, age):
        if age > 0 and age < 120:
            self.__age = age  # 公有方法修改私有属性

person = Person("Tom", 18)
print(person.get_name())  # 通过公有方法访问私有属性
person.set_age(20)  # 通过公有方法修改私有属性

继承:

Python 支持类的继承,子类可以继承父类的属性和方法,并且可以在此基础上添加自己的属性和方法。子类还可以重写父类的方法以实现不同的行为。例如:

class Animal:
    def __init__(self, name):
        self.name = name

    def say_hello(self):
        print(f"{self.name} says hello!")

class Dog(Animal):
    def __init__(self, name):
        super().__init__(name)  # 调用父类构造函数

    def bark(self):
        print("Woof!")

dog = Dog("Tom")
dog.say_hello()  # 继承父类方法
dog.bark()  # 子类新增方法

多态:

Python 支持多态,即不同的对象可以对同一消息做出不同的响应。多态可以通过继承和重写实现,也可以通过 Duck Typing 实现。例如:

class Animal:
    def say_hello(self):
        pass

class Dog(Animal):
    def say_hello(self):
        print("Woof!")

class Cat(Animal):
    def say_hello(self):
        print("Meow!")

def greet(animal: Animal):  # 接受父类参数
    animal.say_hello()  # 多态调用方法

dog = Dog()
cat = Cat()
greet(dog)  # 多态调用 dog 的 say_hello() 方法
greet(cat)  # 多态调用 cat 的 say_hello() 方法

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值