欢迎光临散文网 会员登陆 & 注册

Python中的类,自我监督(day7)

2023-06-02 23:45 作者:忠肝义胆董仲颖  | 我要投稿

今天学习的是Python的类。

学习大纲如下:

  1. 什么是类?

    类是编程中面向对象的一个核心概念。它定义了一类具有相同特性的属性或事件,用于创建具有相似行为和特征的对象。

    下面来做个比方。我是一名建筑设计师,我按照建筑相关标准和要求(Python中类的创建格式、属性定义、方法定义的固定语句就类似这些标准),设计了一栋居民楼的建筑图纸(这个就是类,类似于模板、蓝图),我的图纸中说明了要用哪些材料(定义了类属性)用多少号的钢筋,多少号的水泥,楼层间距有多高,地基挖多深等等方法(定义了类方法)然后很多建筑公司都用我的图纸盖了居民楼(根据我图纸盖出来的居民楼,就是类对象)。

  2. 类的创建

    固定格式:

    class MyClass():

         pass

    注意:给类取名字的时候首字母要大写,这是通用范式,不大写也不会报错。

  3. 实例化对象:通过类可以创建对象,这个过程被称为实例化。使用类名后面跟一对括号来实例化一个对象。

    obj = MyClass()  # 创建一个MyClass的实例对象

  4. 属性:类的属性是与类或对象相关联的数据。它们存储在类的命名空间中,并且可以在类的方法中访问。

    class MyClass:
        def __init__(self, arg1, arg2):
            self.arg1 = arg1
            self.arg2 = arg2

    注:__init__ 这里是左右各两个英文下划线。

  5. 方法:类的方法是与类或对象相关联的函数。它们定义了类的行为和功能。方法通过在类中定义函数来创建。

    class MyClass:
        def __init__(self, arg1, arg2):
            self.arg1 = arg1
            self.arg2 = arg2

        def method(self):

            print('hello world')

  6. self关键字:在类的方法中,self是一个特殊的参数,表示对象本身。通过self可以访问对象的属性和调用其他方法。

  7. 继承:继承是面向对象编程的重要概念,允许创建一个新类,并从现有的类继承属性和方法。通过继承,子类可以重用父类的代码,并添加自己的特定功能。

class ChildClass(ParentClass):
    pass

    8.多态:多态性是面向对象编程的另一个重要概念。它允许不同的类具有相同的方法名称,但其行为和实现方式可以不同。

class Dog:
    def sound(self):
        print("Woof!")

class Cat:
    def sound(self):
        print("Meow!")

animals = [Dog(), Cat()]
for animal in animals:
    animal.sound()  # 输出:Woof! Meow!

9.封装:封装是将相关数据和方法组合在一起的机制。类可以将属性和方法封装在一起,并通过访问控制机制来限制对它们的访问。使用访问修饰符(如public、private和protected)可以控制属性和方法的可见性。

class MyClass:
    def __init__(self):
        self.public_attribute = "Public"  # 公共属性
        self._protected_attribute = "Protected"  # 受保护属性
        self.__private_attribute = "Private"  # 私有属性

obj = MyClass()
print(obj.public_attribute)  # 访问公共属性
print(obj._protected_attribute)  # 访问受保护属性(约定上的规范,实际上仍可访问)
print(obj.__private_attribute)  # 报错,无法访问私有属性

10.方法重写:在子类中可以重写继承自父类的方法,以实现自己特定的行为。通过在子类中定义与父类同名的方法,子类可以覆盖父类的方法实现。

class ParentClass:
    def method(self):
        print("Parent method")

class ChildClass(ParentClass):
    def method(self):
        print("Child method")

obj = ChildClass()
obj.method()  # 输出:Child method



Python中的类,自我监督(day7)的评论 (共 条)

分享到微博请遵守国家法律