python3面向对象

1、面向对象编程概述

面向对象编程(OOP)是一种编程范式,它以“对象”为核心,将数据和操作封装在对象中,通过类和对象来实现代码的组织和复用。在Python3中,面向对象编程是其重要的特性之一。

2、类与对象

1.类(Class):类是对象的蓝图或模板,它定义了具有相同属性和方法的对象的集合。类定义了该集合中每个对象所共有的属性和方法。

class MyClass:  
    def __init__(self, value):  
        self.value = value  
  
    def my_method(self):  
        print(f"The value is {self.value}")

2.对象(Object):对象是类的实例,它包含了类定义的属性和方法。

obj = MyClass(10)  
print(obj.value)  # 输出: 10  
obj.my_method()  # 输出: The value is 10

3、实例方法

实例方法是定义在类中,并且需要通过对象来调用的方法。它们通常操作对象的状态(即属性)。

class Person:  
    def __init__(self, name):  
        self.name = name  
  
    def greet(self):  
        print(f"Hello, my name is {self.name}")  
  
p = Person("Alice")  
p.greet()  # 输出: Hello, my name is Alice

4、封装

封装是面向对象编程的四大特性之一,它主要用来隐藏对象的属性和实现细节,仅对外提供公共访问方式。这样可以保证对象内部状态的安全,并减少代码的复杂性。

class Encapsulated:  
    def __init__(self, value):  
        self.__value = value  # 使用双下划线实现私有属性  
  
    def get_value(self):  
        return self.__value  
  
    def set_value(self, new_value):  
        self.__value = new_value

5、继承

继承是面向对象编程的另一个重要特性,它允许一个类(派生类或子类)继承另一个类(基类或父类)的属性和方法。

1.单继承:子类只继承自一个父类。

class Parent:  
    def say_hello(self):  
        print("Hello from Parent")  
  
class Child(Parent):  
    pass  
  
c = Child()  
c.say_hello()  # 输出: Hello from Parent

2.多继承:子类可以继承自多个父类。

class Parent1:  
    def say_hello1(self):  
        print("Hello from Parent1")  
  
class Parent2:  
    def say_hello2(self):  
        print("Hello from Parent2")  
  
class Child(Parent1, Parent2):  
    pass  
  
c = Child()  
c.say_hello1()  # 输出: Hello from Parent1  
c.say_hello2()  # 输出: Hello from Parent2

6、多态

多态意味着不同的对象对同一消息作出响应。在Python中,多态是通过方法重写和继承实现的。

class Shape:  
    def area(self):  
        pass  
  
class Circle(Shape):  
    def __init__(self, radius):  
        self.radius = radius  
  
    def area(self):  
        return 3.14 * self.radius ** 2  
  
class Rectangle(Shape):  
    def __init__(self, width, height):  
        self.width = width  
        self.height = height  
  
    def area(self):  
        return self.width * self.height  
  
def calculate_area(shape):  
    return shape.area()  
  
circle = Circle(5)  
rectangle = Rectangle(4, 6)  
  
print(calculate_area(circle))  # 调用Circle的area方法  
print(calculate_area(rectangle))  # 调用Rectangle的area方法

7、私有属性与方法

在Python中,通常使用双下划线前缀来实现私有属性和方法。这样,这些属性和方法就不能直接从类的外部访问,但可以通过类内部提供的公共方法进行访问和操作。

class MyClass:  
    def __init__(self, value):  
        self.__private_value = value  # 私有属性  
  
    def __private_method(self):  # 私有方法  
        print("This is a private method")  
  
    def get_private_value(

相关推荐

  1. Python 面向对象(3)

    2024-04-14 03:42:02       54 阅读
  2. python3面向对象

    2024-04-14 03:42:02       15 阅读
  3. python学习】面向对象编程3

    2024-04-14 03:42:02       32 阅读
  4. python--类与面向对象-3

    2024-04-14 03:42:02       15 阅读
  5. Python基础20 面向对象3)多态、封装、反射

    2024-04-14 03:42:02       30 阅读
  6. python面向对象反射

    2024-04-14 03:42:02       42 阅读

最近更新

  1. TCP协议是安全的吗?

    2024-04-14 03:42:02       18 阅读
  2. 阿里云服务器执行yum,一直下载docker-ce-stable失败

    2024-04-14 03:42:02       19 阅读
  3. 【Python教程】压缩PDF文件大小

    2024-04-14 03:42:02       18 阅读
  4. 通过文章id递归查询所有评论(xml)

    2024-04-14 03:42:02       20 阅读

热门阅读

  1. pyqt写个星三角降压启动方式2

    2024-04-14 03:42:02       13 阅读
  2. postgis使用

    2024-04-14 03:42:02       16 阅读
  3. photoshop基础学习笔记

    2024-04-14 03:42:02       13 阅读
  4. 第六周学习笔记DAY.1

    2024-04-14 03:42:02       15 阅读
  5. 100个好用的安全工具推荐

    2024-04-14 03:42:02       10 阅读
  6. C++ 传值调用

    2024-04-14 03:42:02       15 阅读
  7. 有趣的小知识(五).sh文件是什么

    2024-04-14 03:42:02       15 阅读
  8. CMakeLists使用总结

    2024-04-14 03:42:02       16 阅读
  9. 设计模式示例

    2024-04-14 03:42:02       16 阅读
  10. 机器学习算法

    2024-04-14 03:42:02       13 阅读
  11. Android沙盒机制

    2024-04-14 03:42:02       15 阅读
  12. 在 Ubuntu 系统上安装 Python 3.10.0

    2024-04-14 03:42:02       11 阅读