python 类多次继承_Python编程基础:类、对象、继承和构造函数

5e75823eb1acb6993afffae3a3f25965.png

什么是类?

类是数据和函数的逻辑划分,它提供了创建包含任意内容,并易于访问的数据结构。

例如,对于想要在线获取客户详细信息,将转到客户类别,其中列出了客户的所有属性,如交易详情,提款和存款详细信息,未偿还债务等。

本文我们将学习以下内容,

  • 如何定义Python类
  • 继承如何工作
  • Python构造函数

如何定义Python类

要定义类,您需要考虑以下几点:

步骤1)在Python中,类由“class”关键字定义。

1class myClass():

步骤2)在类内部,可以定义属于该类的函数或方法。

1def method1 (self):2 print "Guru99"3def method2 (self,someString): 4 print "Software Testing:" + someString
  • 定义了method1来打印“Guru99”。
  • 定义的另一种方法是method2,它打印“Software Testing”+ someString,someString是调用方法提供的变量。

步骤3)类中的所有内容都是缩进的,就像函数中的代码,循环,if语句等一样。没有缩进的内容不属于该类。

4c5d43ec8d80d2bd2d42c4b2e3046da3.png

注意:关于在Python中使用“self

  • self指的是对象本身。在此方法中,self将引用正在操作的此对象的特定实例。
  • self是Pythons公约首选的名称,用于指示Python中实例方法的第一个参数。它是访问对象成员的Python语法的一部分。

步骤4)创建类的对象

1c = myClass()

步骤5)在类中调用方法

1 c.method1()2 c.method2(" Testing is fun")
  • 请注意:当我们调用method1或method2时,我们不必提供self关键字,这是Python运行时为我们自动处理的。
  • 当你在实例中调用实例方法时,Python运行时将传递“self”值,无论您是否提供它。
  • 只需要关注非self。

步骤6)完整的代码:

 1# Example file for working with classes 2class myClass(): 3 def method1(self): 4 print("Guru99") 5 6 def method2(self,someString):  7 print("Software Testing:" + someString) 8 910def main(): 11 # exercise the class methods12 c = myClass ()13 c.method1()14 c.method2(" Testing is fun")1516if __name__== "__main__":17 main()

继承如何工作

继承是面向对象编程中使用的一个特性; 它指的是定义一个对现有类进行较少修改或不修改的新类。新类称为派生类,它继承的类称为基类。Python支持继承; 它还支持多重继承。类可以从另一个名为subclass或heir类的类继承属性和行为方法。

8bb6566c588b033d3ffca5619a70e2f2.png

Python继承语法

1class DerivedClass(BaseClass):2 body_of_derived_class

步骤1)运行以下代码:

 1# Example file for working with classes 2class myClass(): 3 def method1(self): 4 print("Guru99") 5 6 7class childClass(myClass): 8 #def method1(self): 9 #myClass.method1(self);10 #print ("childClass Method1")1112 def method2(self):13 print("childClass method2") 1415def main(): 16 # exercise the class methods17 c2 = childClass()18 c2.method1()19 #c2.method2()2021if __name__== "__main__":22 main()

请注意,在childClass中,method1未定义,但它是从父类myClass派生的。输出是“Guru99”。

步骤2)取消注释第8行和第10行,运行代码。

现在,method1在childClass中定义,输出“childClass Method1”被正确显示。

步骤3)取消注释第9行。运行代码

您可以使用语法来创建父类的方法:

1ParentClassName.MethodName(self)

在我们的例子中,我们调用myClass.method1(self)和Guru99按预期打印

步骤4)取消注释第19行。运行代码。

调用子类的method2,并按预期打印“childClass method2”。

Python构造函数

构造函数是一个类函数,它将对象实例化为预定义的值。

它以双下划线(_)开头。它__init __()方法

在下面的示例中,我们使用构造函数来获取用户的名称。

 1class User: 2 name = "" 3 4 def __init__(self, name): 5 self.name = name 6 7 def sayHello(self): 8 print("Welcome to Guru99, " + self.name) 910User1 = User("Alex")11User1.sayHello()

输出将是:

Welcome to Guru99, Alex

Python 2示例

上面的代码是Python 3示例,如果您想在Python 2中运行,请参考以下代码:

 1# How to define Python classes 2# Example file for working with classes 3class myClass(): 4 def method1(self): 5 print "Guru99" 6 7 def method2(self,someString):  8 print "Software Testing:" + someString 9101112def main(): 13 # exercise the class methods14 c = myClass ()15 c.method1()16 c.method2(" Testing is fun")1718if __name__== "__main__":19 main()202122#How Inheritance works23# Example file for working with classes24class myClass():25 def method1(self):26 print "Guru99"272829class childClass(myClass):30 #def method1(self):31 #myClass.method1(self);32 #print "childClass Method1" 3334 def method2(self):35 print "childClass method2" 3637def main(): 38 # exercise the class methods39 c2 = childClass()40 c2.method1()41 #c2.method2()4243if __name__== "__main__":44 main()

总结

“类”是函数和数据的逻辑划分。Python类提供面向对象编程的所有标准功能。

  • 类继承机制;
  • 一个派生类,它覆盖其基类的任何方法;
  • 方法可以调用具有相同名称的基类的方法;
  • Python类由关键字“class”本身定义;
  • 在类的内部,可以定义属于该类的函数或方法;
  • 类中的所有内容都是缩进的,就像函数,循环,if语句等中的代码一样;
  • Python中的self参数指的是对象本身。self是Pythons公约首选的名称,用于指示Python中实例方法的第一个参数;
  • 当您在实例中调用实例方法时,Python运行时将自动传递“self”值,无论您是否提供它;
  • 在Python中,类可以从另一个名为subclass或heir类的类继承属性和行为方法;
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值