python继承语法_Python 继承

本文介绍了Python继承的相关知识。继承允许子类继承父类的方法和属性,文中详细说明了创建父类和子类的方法,还阐述了如何在子类中添加__init__()函数、属性和方法,以及子类方法重写父类方法的情况。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

版权所有,未经许可,禁止转载

Python 继承

继承允许我们在定义一个类时,让该类继承另一个类的所有方法和属性。

父类是被继承的类,也称为基类。

子类是继承父类的类,也称为派生类。

创建父类

任何类都可以是父类,创建父类的语法和创建普通类是一样的:

示例

创建一个名为Person的类,包含属性:firstname,lastname, 方法:printname:

class Person:

def __init__(self, fname, lname):

self.firstname = fname

self.lastname = lname

def printname(self):

print(self.firstname, self.lastname)

# 使用Person类创建对象,然后执行printname方法:

x = Person("Kevin", "Wu")

x.printname()

创建子类

要创建子类,需将父类作为参数传入:

示例

创建一个名为Student的类,它将继承Person类的属性和方法:

class Student(Person):

pass

注意: 当您不想给类添加任何属性或方法时,使用pass关键字。

现在Student类具有与Person类相同的属性和方法。

示例

使用Student类创建对象,然后执行printname方法:

x = Student("Kevin", "Tony")

x.printname()

添加__init__()函数

到目前为止,我们已经创建了一个子类,它继承了父类的属性和方法。

现在将__init__()函数添加到子类(不再使用pass关键字)。

注意: 每当创建新对象时,都会自动调用类的__init__()函数。

示例

将__init__()函数添加到Student类:

class Student(Person):

def __init__(self, fname, lname):

# 添加属性

当您添加了__init__()函数后,子类将不再继承父类的__init__()函数。

注意: 子函数的__init__()重写父函数的__init__()。

要保留父类的__init__()函数的功能,可在子类的__init__()函数中调用父类的__init__()函数:

示例

class Student(Person):

def __init__(self, fname, lname):

Person.__init__(self, fname, lname)

现在,我们已经给子类添加了__init__()函数,并调用了父类的__init__()函数,下面我们将在__init__()函数中添加其他功能。

添加属性

示例

在Student类中添加一个关于毕业年份的属性:

class Student(Person):

def __init__(self, fname, lname):

Person.__init__(self, fname, lname)

self.graduationyear = 2019

2019年应该是一个变量,并在创建学生对象时传递给Student类。为此,在__init__()函数中添加另一个year参数:

示例

添加一个year参数,创建对象时传入毕业年份:

class Student(Person):

def __init__(self, fname, lname, year):

Person.__init__(self, fname, lname)

self.graduationyear = year

x = Student("Kevin", "Tony", 2019)

加入方法

示例

在Student类中添加一个名为welcome的方法:

class Student(Person):

def __init__(self, fname, lname, year):

Person.__init__(self, fname, lname)

self.graduationyear = year

def welcome(self):

print("Welcome", self.firstname, self.lastname, "to the class of", self.graduationyear)

如果在子类中添加父类中的同名方法,则父类的方法将被重写。

### Python 中类继承语法Python 中,通过指定父类名称作为新类定义中的基类来创建派生类。基本形式如下: ```python class DerivedClassName(BaseClassName): # 类主体 ``` 对于多继承的情况,则可以在括号内列出多个基类的名字,用逗号分隔。 #### 单继承实例 考虑一个简单的例子,在这里`Cat`是从`Animal`继承而来的子类[^3]。 ```python class Animal: num = 0 def __init__(self): print("父类 Animal") def show(self): print("父类 Animal 成员方法") class Cat(Animal): def __init__(self): print("构建子类 Cat") def run(self): print("子类 Cat 成员方法") cat = Cat() cat.run() # 子类方法 cat.show() # 父类方法 ``` 此代码展示了如何从 `Animal` 创建一个新的名为 `Cat` 的类,并且该类不仅拥有自己的成员函数 `run()` ,还能够访问其父类 `Animal` 的公共成员函数 `show()` 和变量 `num`. #### 多重继承示例 当涉及到多重继承时,Python允许一个类同时具有多个直接祖先。这可以通过简单地将这些祖先列在一个元组里并传递给新的类来进行声明[^1]。 ```python class A: def method(self): print("A method") class B: def method(self): print("B method") class C(A, B): pass c = C() c.method() # 输出:A method ``` 在这个案例中,如果两个或更多的基础类提供了相同名字的方法或属性,默认情况下只会调用第一个被提及的基础类里的那个版本;除非特别指定了要使用的具体路径。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值