Python的基础学习(七):类

本文讲解了面向对象编程中的核心概念——类的定义与使用,包括创建Dog类、__init__方法的作用、实例化过程,以及继承的原理和应用。通过实例演示如何导入和使用类,以及在Python中创建子类和扩展父类的功能。
摘要由CSDN通过智能技术生成


1. 什么是类?

  1. 类是面向对象编程的一大特色。
  2. 在面向对象编程中,你编写表示现实世界中的事物和情景的类,并基于这些类来创建对象。
  3. 基于类创建对象时,每个对象都自动具备这种通用行为,然后可根据需要赋予每个对象独有的个性。根据类创建对象被称为实例化。
  • 打个比方:在现实生活中,动物分为好多个种类(类),其中有狗,猫,兔······,每个种类(类)都有他们的通用行为,而且这类动物中,每一个个体(对象)也都有自己的个性。

2.创建和使用类

2.1 创建一个Dog类

  • 在使用的过程中让我们来了解它是如何使用的。
class Dog:

    def __init__(self, name, age):
        self.name = name
        self.age = age

    def sit(self):
        print(self.name.title() + " is now sitting.")

    def roll_over(self):
        print(self.name.title() + " rolled over!")

2.2 方法__ init __()

  1. 类中的函数称为方法;前面有关函数的一切都适合于方法,就目前而言,唯一重要的区别是调用方法的方式。方法==__ init __()==是一个特殊的方法,每当你根据Dog类创建新实例时,Python都会自动运行它。
  2. 在方法__ init __()中必须包含形参self,因为Python调用该方法时,将自动传入实参self,每个与类相关联的方法调用都自动传递实参self,它是一个指向实例本身的引用,让实例能够访问类中的属性和方法。

2.3 根据类创建实例

my_dog = Dog("john", 6)     # 创建了一个6岁名为john的狗
print(my_dog.name.title(), my_dog.age)
my_dog.sit()
my_dog.roll_over()
> 输出:
John 6
John is now sitting.
John rolled over!

3. 继承

  • 一个类继承另一个类时,它将自动获得另一个类的所有属性和方法;原有的类称为父类,而新类称为子类。子类继承了其父类的所有属性和方法,同时还可以定义自己的属性和方法。
class Dog:

    def __init__(self, name, age):
        self.name = name
        self.age = age

    def sit(self):
        print(self.name.title() + " is now sitting.")

    def roll_over(self):
        print(self.name.title() + " rolled over!")


class Hdog(Dog):
    def __init__(self, name, age):
        super().__init__(name, age)

    def dump(self):
        print(self.name.title() + " is now dumping.")
    
    def sit(self):
        print(self.name.title() + " is sitting.")
  1. 创建子类时,父类必须包含在当前文件中,且位于子类前面。
  2. 定义子类时,必须在括号内指定父类的名称。
  3. super()时一个特殊函数,帮助Python将父类和子类关联起来。这行代码让Python调用了父类的方法__ init __,让子类包含了父类的所有属性。父类也称为超类(superclass),名称super因此得名。
  4. 在创建子类的时候,我们还可以给子类定义新的方法,如上面的实例中,新加入了dump的方法。
  5. 子类不仅仅可以加入新的方法,还可以修改父类中的方法,如上图子类中的sit方法,我们修改了父类中的sit方法。

4. 导入类

  • 现在我们将上面的Dog类文件命名为dog.py,在另一个文件中导入它。
导入描述
import dog导入整个模块
from dog import Dog导入特定的类
from dog import Dog, Hdog导入多个类
from dog import *导入模块中所有类
  • 为了防止模块太大,在Python中还可以从一个模块中导入另一个模块。
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值