标签搜索

函数和类

追梦
2023-02-15 / 117 阅读 / 正在检测是否收录...

函数和类


函数
函数(有些语言称之为方法)是组织好的,可以复用的功能代码段。
python定义函数的格式:

def 函数名(参数):
    函数体

基础示例如下:

# 自定义数值相加函数
def mySum(x, y):
    return x+y


print(mySum(4, 4))  # output:8
print(mySum(3, 1))  # output:4

传递可变对象
传递可变对象指的是传递了对象,在函数体被重新赋值后原来的值也发生了改变,示例如下:

def updateList(ls):
    ls.append("laowang")
    return ls


list = ["hello"]
updateList(list)
print(list)
# 输出:['hello', 'laowang']

原来的列表的值也被修改了,如果不想改变原来值的情况下,可使用[:],传递切片副本,示例如下:

def updateList(ls):
    ls.append("laowang")
    return ls


list = ["hello"]
updateList(list[:])
print(list)
# 输出:['hello']

缺省参数
缺省参数表示调用函数的时候是可以不传递当前参数值,而使用默认参数值的,示例如下:

def showInfo(name, sex="男", age=18):
    print("姓名:%s\t性别:%s\t年龄:%d" % (name, sex, age))


showInfo(name="老王")  # 输出:姓名:老王      性别:男        年龄:18
showInfo(name="老王", age=19)  # 输出:姓名:老王      性别:男        年龄:19
注意:有默认值的参数一定要放在无默认值参数的后面。

指定参数名称
调用函数的时候,可以指定参数名称,从而用户可以不用关注调用参数的位置顺序,示例如下:

def showInfo(name, sex):
    print("姓名:%s 性别:%s" % (name, sex))


showInfo(sex="男", name="老王")  # 输出:姓名:老王 性别:男
注意:如果要指定参数的名称,那么所有的非缺省参数都必须全部指定参数名称,python不支持,部分指定参数名的使用方式。

不定参数
不定参数使用*参数名来表示,示例如下:

def doPrint(name, *list):
    print(name)
    for item in list:
        print(item)


doPrint("老王", "你好")  # 输出:老王 你好
doPrint("老王", "你好", "大家好")  # 输出:老王 你好 大家好

同时存在缺省参数和不定参数示例:

def doPrint(name, age=18, *list):
    print("姓名:%s 年龄:%d" % (name, age))
    for item in list:
        print(item)


doPrint("老王", 19, "你好", "世界")

# 输出如下:
# 姓名:老王 年龄:19
# 你好
# 世界
注意:不定参数任何情况下都要放在参数最后方。

python中用class关键声明类,推荐使用驼峰命名法,首字母大写。
python中的类格式:

class 类名():
    def __init__(self,参数):
        self.参数 = 参数
    其他方法体

示例如下:

class Car():
    def __init__(self, name):
        self.name = name

    def printInfo(self, color):
        print("车型:%s 颜色:%s" % (self.name, color))


mycar = Car("福特")
mycar.printInfo("白色")
# 输出:车型:福特 颜色:白色
注意:构造函数为__init__(self,参数)此方法是不能省略的。

类继承,方法重写
类继承语法格式:

class 子类名称(父类名称):

类继承&重写方法,示例如下:

class Car():
    def __init__(self, name):
        self.name = name

    def printInfo(self, color):
        print("车型:%s 颜色:%s" % (self.name, color))


class WhiteCar(Car):
    def __init__(self, name):
        # 初始化父类构造函数
        super().__init__(name)

    def printInfo(self, mileage):
        print("车型:%s 颜色:白色 行驶里程:%dKM" % (self.name, mileage))


wCar = WhiteCar("福特")
wCar.printInfo(1000)
# 输出:车型:福特 颜色:白色 行驶里程:1000KM
注意:super().__init__(参数)初始化父类构造函数不能省。

0
博主关闭了当前页面的评论
-->