Python函数、类

Python函数、类

一、函数

1.函数的定义

函数就是把一段具有独立功能的代码封装组织成一个小模块,在需要的时候在进行调用。基本的定义格式如下(其中入参和返回值可以没有),其中函数名采用小写形式:
def <函数名>(入参1,入参2…)
<代码块>
return <返回值>

2.函数的调用和参数传递

(1)函数调用形式
若函数中无返回值:函数名(入参值)
若函数中有返回值:变量=函数名(入参值)
(2)可选参数传递
函数定义时,可以为某些参数定于默认值,作为可选参数(可选参数的位置必须放在非可选参数的后面),基本形式如下:
def <函数名> (非可选参数,可选参数)
<函数体>
return <返回值>

例如:

#函数的定义与使用
#函数的定义与使用
def fact(m,n=2):
    s=1
    for i in range(1,m+1):
        s=s*i
    return s//n
result1=fact(5)  #可选参数直接取默认值
print(result1)
result2=fact(5,4)   #对可选参数重新赋值
print(result2)

输出结果为:

60
30

(3)可变参数传递
入参的可数是可变的,采用“*b”的形式表示,例如:

#函数的定义与使用:可变参数传递
def fact(m,*b):
    s=1
    for i in range(1,m+1):
        s=s*i
    for j in b:
        s=s*j
    return s
result1=fact(5,2)   #可变参数仅赋值为2
print(result1)
result2=fact(5,2,3,4,5)   #可变参数赋值为2,3,4,5
print(result2)

输出结果为:

240
14400

(3)参数传递方式
参数传递的方式分为两种:根据位置的传递根据参数名的传递,两者的区别如下:

#函数调用中参数传递的方式
#基于位置的传递
def fact(m,n):
    s=1
    for i in range(1,m+1):
        s=s*i
    return s//n
result1=fact(5,2)  #调用中根据函数中参数对应的位置分别赋予m值为5,n的值为2
print(result1)
result2=fact(m=5,n=2)  #根据函数中参数名称,分别赋予入参值
print(result2)

二、类

1.类的定义

  • 类是对一批具有相同属性和方法的对象的抽象。类的基本定义格式如下,其中类名的首字母大写
    class <类名>:
       def 方法1 (self,参数列表1):
          <执行指令1>
       def 方法2 (self,参数列表2):
          <执行指令2>
    其中,类的方法中的第一个参数必须是self。

  • 定义一个空类的方法:
    class <类名>:
       pass

  • 创建实例的方法
    当一个类定义好之后,使用该类创建实例的基本格式如下:
    实例变量=类名()

类的创建实例如下,其中init()方法为类的初始化方法,当创建实例的时候就会调用该方法:

#类的定义
class Student():
    def __init__(self,id,sname,age,height):
        self.id=id
        self.sname=sname
        self.age=age
        self.height=height
    def printinfo(self):
        print("学生id:",self.id)
        print("学生姓名:",self.sname)
        print("学生年龄:",self.age)
        print("学生身高:",self.height)
s1=Student(1,'张三',20,165)
s1.printinfo()

执行结果如下:

学生id: 1
学生姓名: 张三
学生年龄: 20
学生身高: 165

2.类的继承

通过使用类的继承可以减少代码的冗余度,实现代码的重复使用。

  • 子类可直接继承父类中的属性和方法
    基本实现代码如下:
#类的继承
class People():                      #父类
    def __init__(self,id,name,sex):
        self.id=id
        self.name=name
        self.sex=sex
    def printinfo(self):
        print("身份信息:",self.id)
        print("姓名:",self.name)
        print("性别:",self.sex)
class Student(People):             #子类括号中的类名表示继承的父类
    pass
s1=Student(123,'张三','男')         #对子类创建一个实例
s1.printinfo()

运行结果如下:

身份信息: 123
姓名: 张三
性别: 男
  • 派生
    子类定义自己的属性或者方法,若方法名可以与父类中的方法名相同,则是对父类方法的重写。例如:
#类的继承
class People():                      #父类
    def __init__(self,id,name,sex):
        self.id=id
        self.name=name
        self.sex=sex
    def printinfo(self):
        print("身份信息:",self.id)
        print("姓名:",self.name)
        print("性别:",self.sex)
class Student(People):             #子类括号中的类名表示继承的父类
    def printinfo(self):           #子类中定义一个方法printinfo,与父类的方法名相同
        print('这是子类自己的方法')
s1=Student(123,'张三','男')         #对子类创建一个实例
s1.printinfo()

输出结果为:

这是子类自己的方法
  • 若子类中重写的父类的方法中,还需要使用父类方法的功能,则可以通过super函数来实现,例如:
#类的继承
class People():                      #父类
    def __init__(self,id,name,sex):
        self.id=id
        self.name=name
        self.sex=sex
    def printinfo(self):
        print("身份信息:",self.id)
        print("姓名:",self.name)
        print("性别:",self.sex)
class Student(People):             #子类括号中的类名表示继承的父类
    def printinfo(self):           #子类中定义一个方法printinfo,与父类的方法名相同
        super().printinfo()        #通过super来调用父类中与子类中重名的方法
        print('这是子类自己的方法')
s1=Student(123,'张三','男')         #对子类创建一个实例
s1.printinfo()

多继承(一个子类继承多个父类)情况下,使用super函数重用父类的方法只能调用一个父类,若想指定父类可以使用父类名.方法名(self) 的方式,例如:

class People():
    def __init__(self,id,name):
        self.id=id
        self.name=name
    def printinfo(self):
        print("身份信息:",self.id)
        print("姓名:",self.name)
class School():
    def __init__(self,coursename):
        self.coursename=coursename
    def printinfo(self):
        print("课程的名称为:",self.coursename)
class Student(People,School):             #子类继承多个父类
    def __init__(self,id,name,grade):  #子类中定义了与父类重名的方法
        People.__init__(self,id,name)  #要想调用特定父类的构造器使用父类名.__init__方式
        self.grade=grade
    def printinfo(self):
        print('身份信息为:',self.id)
        print('学生姓名为:',self.name)
        print('学生成绩为:',self.grade)
s1=Student('123','张三',80)         #对子类创建一个实例
s1.printinfo()

输出结果为:

身份信息为: 123
学生姓名为: 张三
学生成绩为: 80
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值