python 类的继承,类中的函数调用以及类输入数组

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

第一部分,类的继承

先给出一个例子:

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)

您可能感兴趣的与本文相关的镜像

Python3.11

Python3.11

Conda
Python

Python 是一种高级、解释型、通用的编程语言,以其简洁易读的语法而闻名,适用于广泛的应用,包括Web开发、数据分析、人工智能和自动化脚本

评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值