第一部分,类的继承
先给出一个例子:
class People(): #定义类,要大写,python 2中要在括号里加如object这个单词
def __init__(self,n,a,w): #定义一个方法(类下的函数都称为方法),初始化形参(属性)
self.name = n
self.age = a
self.weight = w
def express(self): #定义第二个函数,括号里面的self不可少,表示需要用到初始化里的形参
print('My name is %s, and my age is %d' %(self.name,self.age))
class Xiaowen(People): #定义另一个类,并继承People父类
def __init__(self,n,a,w,g): #在父类上加了一个形参g
People.__init__(self,n,a,w) #调用父类的构造函数,用于将父类和子类联系起来
#上面一句也可以用super来进行父类(超类)的继承,并建议用super,因为类比较多的时候不用super会混乱
#super().__init__(n,a,w)#使用super继承父类
#super()括号里可以放子类名字,如super(Xiaowen,self).__init__(n,a,w)
self.grade = g
def express(self):
print('My name is %s, and my grade is %d'%(self.name,self.grade))
people = Xiaowen('wudl',22,53,3) #实例
people.express()
注意:
- 类的继承class Xiaowen(People)里面一定要有People这个类,
- 类的继承def init(self,…)括号里一定要有父类的参数
- 假如是从另一个文件(如test1.py)继承到这个文件,那么在前面from test1 import People, 之后的继承跟上面一样
类的继承建议使用super,如上代码中的解释
第二部分,类中的函数调用
使用句点表示法
在同一个类中第二个函数有时候可能需要调用第一个函数,如下:
class Fun(object): #定义类
def __init__(self,x): #初始化参数
self.x = x
def fun1(self,y): #定义第一个函数,self表示继承上面的参数x,而y是fun1自己的一个参数,不是类的参数
a = y**2+2+self.x
return a
def fun2(self): #定义第二个函数
b = self.fun1(3)+3 #调用fun1,同时参数y实例化为3
return b
def fun3(self):
return(self.fun1(3)+3) #便捷的输出,不想再定义一个参数来储存
ans = Fun(1) #实例化,参数x实例化为1,但参数y是没有实例化的,因为y是fun1自己的参数
ans1 = ans.fun1(2) #将参数y赋值为2
ans2 = ans.fun2() #要有括号
ans3 = ans.fun3()
print(ans1,ans2,ans3)
>>>>> 7 15 15 #结果
注意:在调用的时候一定要加括号,否则不输出结果,如ans2=ans.fun()
第三部分,类输入数组
跟第二部分相同,只是类中输入的x是一个数组,如下:
import numpy as np
class Fun(object): #定义类
def __init__(self,x): #初始化参数
self.x = x
def fun1(self,y): #定义第一个函数,self表示继承上面的参数x,而y是fun1自己的一个参数,不是类的参数
a = y**2+2+self.x[0] #self.x[0]表示数组的第一个数,即1.
return a
def fun2(self): #定义第二个函数
b = self.fun1(3)+3 #调用fun1,同时参数y实例化为3
return b
def fun3(self):
return(self.fun1(3)+3) #便捷的输出,不想再定义一个参数来储存
ary = np.array((1,2,3))
ans = Fun(ary) #实例化,参数x实例化为1,但参数y是没有实例化的,因为y是fun1自己的参数
ans1 = ans.fun1(2) #将参数y赋值为2
ans2 = ans.fun2()
ans3 = ans.fun3()
print(ans1,ans2,ans3)
>>>>> 7 15 15 #结果
第四部分,类的调用/导入
导入单个类
假如有一个名为’car.py’的文件,里面有一个类’class Car()’
from car import Car
导入多个类
假如除了Car类之外,还有ElectricCar
from car import Car, ElectricCar
导入整个模块
import car
my_car = car.Car(xxx)

本文介绍Python中类的继承方法,包括如何定义基类和派生类,使用super进行父类方法调用,以及如何在一个类中调用其他方法。此外,还介绍了如何处理数组作为类的输入。
296

被折叠的 条评论
为什么被折叠?



