龙空技术网

「万能Python」-14-类和继承

墨客moke 276

前言:

当前看官们对“python继承属性”大约比较重视,我们都需要剖析一些“python继承属性”的相关内容。那么小编也在网摘上收集了一些有关“python继承属性””的相关资讯,希望小伙伴们能喜欢,姐妹们快快来学习一下吧!

今日分享歌曲

歌名:平凡之路

歌手:朴树

音量:42%

面向对象

Python从设计之初就已经是一门面向对象的语言,正因为如此,在Python中创建一个类和对象是很容易的。

面向对象技术类(Class): 用来描述具有相同的属性和方法的对象的集合。它定义了该集合中每个对象所共有的属性和方法。对象是类的实例。方法:类中定义的函数。类变量:类变量在整个实例化的对象中是公用的。类变量定义在类中且在函数体之外。类变量通常不作为实例变量使用。数据成员:类变量或者实例变量用于处理类及其实例对象的相关的数据。方法重写:如果从父类继承的方法不能满足子类的需求,可以对其进行改写,这个过程叫方法的覆盖(override),也称为方法的重写。局部变量:定义在方法中的变量,只作用于当前实例的类。实例变量:在类的声明中,属性是用变量来表示的,这种变量就称为实例变量,实例变量就是一个用 self 修饰的变量。继承:即一个派生类(derived class)继承基类(base class)的字段和方法。继承也允许把一个派生类的对象作为一个基类对象对待。例如,有这样一个设计:一个Dog类型的对象派生自Animal类,这是模拟"是一个(is-a)"关系(例图,Dog是一个Animal)。实例化:创建一个类的实例,类的具体对象。对象:通过类定义的数据结构实例。对象包括两个数据成员(类变量和实例变量)和方法。

Python中的类提供了面向对象编程的所有基本功能:类的继承机制允许多个基类,派生类可以覆盖基类中的任何方法,方法中可以调用基类中的同名方法。

类的定义

语法格式

class ClassName:    <statement-1>

创建一个类之后,可以通过类名访问其属性。

class people:    #定义基本属性    name = ''    age = 0    #定义私有属性,私有属性在类外部无法直接进行访问    __weight = 0    #定义构造方法    def __init__(self,n,a,w):        self.name = n        self.age = a        self.__weight = w    def speak(self):        print("%s 说: 我 %d 岁。" %(self.name,self.age)) # 实例化类p = people('moke',30,70)p.speak()

p 为类的对象

init() 的特殊方法(构造方法),该方法在类实例化时会自动调用

self代表类的实例,而非类

在类的内部,使用 def 关键字来定义一个方法,叫做类的方法

name,age 为类的属性

__weight:为类的私有属性,外部无法访问

类的继承

继承机制经常用于创建和现有类功能类似的新类,又或是新类只需要在现有类基础上添加一些成员(属性和方法),但又不想直接将现有类代码复制给新类。也就是说,通过使用继承这种机制,可以轻松实现类的重复使用。

class worker(people):    w_type = ''    def __init__(self,n,a,w,t):         #调用父类的构函        people.__init__(self,n,a,w)        self.w_type = t        #覆写父类的方法    def speak(self):        print("%s 说: 我 %d 岁了,我是 %s"%(self.name,self.age,self.w_type))        s = worker('moke',30,70,'码农')s.speak()

多继承

事实上,大部分面向对象的编程语言,都只支持单继承,即子类有且只能有一个父类。而 Python 却支持多继承(C++也支持多继承)。

使用多继承经常需要面临的问题是,多个父类中包含同名的类方法。对于这种情况,Python 的处置措施是:根据子类继承多个父类时这些父类的前后次序决定,即排在前面父类中的类方法会覆盖排在后面父类中的同名类方法。

方法重写

如果你的父类方法的功能不能满足你的需求,你可以在子类重写你父类的方法

class Parent:        # 定义父类   def myMethod(self):      print ('调用父类方法') class Child(Parent): # 定义子类   def myMethod(self):      print ('调用子类方法') c = Child()          # 子类实例c.myMethod()         # 子类调用重写方法super(Child,c).myMethod() #用子类对象调用父类已被覆盖的方法

super() 函数是用于调用父类(超类)的一个方法.

总结

「 趁着年轻,好好犯病。 」

标签: #python继承属性 #c语言实现类 #继承python定义