Python入门之Lesson4:Python函数与类

目录

前言

一.函数

        1.函数的定义

        2.函数的使用                     

                3.参数分类

                        (1) 必备参数

                        (2) 默认参数

                        (3) 关键参数 

                        (4) 可变长参数

        3.特殊函数

                1.匿名函数                        

                2.递归函数

二.类

        1.类的定义

        2.类的使用                              

        3.面向对象的特性 

                (1)封装

                (2)继承 

三.总结 


前言

        在上一课,我们学习了Python的常见数据结构,然而当我们遇到复杂的问题时,我们通常需要采用“分而治之”的思想解决,把大任务分解为多个容易解决的小任务,先解决每个小任务,最后解决复杂的大任务。同时它还可以提高应用的模块性,和代码的重复利用率类则是进一步将函数打包,让其模拟现实。

一.函数

        1.函数的定义

                在Python中,函数定义的格式为:

def name_of_function("形参"):    #这是一个变量名
    (<函数体>) 

                解释说明

                        函数必须使用关键字def(英文define的缩写),后需要接函数的名字(基本上是                           函数的功能,并且最好不要出现大写,后面要接一个冒号),形参(即你给需要传                             入的参数的统一变量名,可以有多个),函数体(需要缩进)。

        2.函数的使用                     

                我们以计算长方形面积为例,编写一个函数。

def rectangle(length, width):
    return length*width
s=rectangle(6, 4)
print(s)
# 输出结果:24

                 解释说明:

                        return([表达式])结束函数,选择性地返回一个或多个值给调用的语句。

                        s=rectangle(6, 4)这一句即是调用语句,6,4这两个值是实参,分别对应函数中的                            length,width。在调用函数时,需要注意:

                                1.在没有特殊情况(后面要讲的默认参数的使用)时,实参和形参个数一致。

                                2.实参和对应的形参数据结构相同。

                                3.实参与形参是对应的。

                3.参数分类

                        Python的参数分类有四种。

                        (1) 必备参数

                                必备参数是指调用函数时个数,数据类型,输入顺序等必须相等且正确的参                                    数,否则出现不匹配报错。这也是最常见的一类参数。

                        (2) 默认参数

                                默认参数是指允许有默认值的参数,如果调用时不给默认参数,那么函数                                        体,则默认获得默认值。我们以计算圆形面积为例,编写一个示例。

def round(r, π=3.14):
    return(r*r*π)
print(3) #28.26
print(3, 3.1415) #28.2735

                                可以看到,Python通过在形参后面加上"="和给定的值来指定默认值。

                        (3) 关键参数 

                                最硬核的传参方法,直接使用键值对的方式,因此它也叫命名参数:

def a_b(a, b):
    return(a+b)
a_b(b=3, a=2)

                                即便打乱顺序,由于指定了形参,因此仍然可以正常赋值。

                        (4) 可变长参数

                                Python中的可变长参数是指在函数定义时,可以接收任意数量的参数。在函                                    数中使用一个或两个星号(*)表示可变长参数。

                                有两种类型的可变长参数:

                                1.*args:当你不确定要向函数中传递多少个参数时,可以使用 *args。它将                                     所位置参数打包成一个元组。

def func(*args):
    for arg in args:
        print(arg)
my_function(1, '2', [3])

                                2.**kwargs:**kwargs 允许你传递任意数量的关键字参数,并将它们打包成一                                     个字典。

def my_function(**kwargs):
    for key, value in kwargs.items():
        print(f"{key}:{value}")

my_function(a="a", b="b")

        3.特殊函数

                1.匿名函数                        

                        Python 使用 lambda 来创建匿名函数。

                        lambda 函数是一种小型、匿名的、内联函数,它可以具有任意数量的参数,但只                            能有一个表达式。它比def语法简单的多。

                        其语法为:

函数名=lambda [参数]:表达式

                        示例:

sum_num = lambda a, b: a+b
print(sum(10, 20)) # 返回30

                        刚刚的代码也可以用常规的函数来表示为:

def sum_num(a, b):
    return a+b
print(sum_num(10,20))

                        我们可以直观地看出匿名函数的简洁性。但是,lambda不能处理繁琐任务,适用于编写简单的函数。

                2.递归函数

                        递归函数在同一个函数内进行嵌套调用,通常前一次的输出就是后一次的输入。

                        举个栗子:求1-100数字之和:

def sum_num(n): 
    if n>0: 
       return n +sum_num(n-1) 
    else: 
       return 0 
 
print(sum_num(100))

二.类

        1.类的定义

                Python的类是一种对象的抽象化方式,它定义了对象的属性和行为。类是创建对象的蓝                  图,可以根据类创建多个具有相同属性和行为的对象。在类中,可以定义属性(类变量                 和实例变量)和方法(类方法和实例方法)。类变量是类的所有实例共享的变量,而实                    例变量是每个对象独有的变量。类方法是类中定义的方法,可以通过类本身调用,而实                  例方法是对象可调用的方法。通过使用类,可以实现封装、继承、多态等面向对象的特                   性。

        2.类的使用                              

                在Python中,类的定义和对象的创建是实现面向对象编程(OOP)的基础。我们可以通                  过类来创建对象,并对其属性和方法进行操作。下面是一个简单的类的示例:

class Dog:
    def __init__(self, name, age):
        self.name = name  # 实例变量
        self.age = age    # 实例变量

    def bark(self):
        print(f"{self.name} is barking!")

# 创建对象
my_dog = Dog("Rex", 3)

# 访问属性和调用方法
print(my_dog.name)  # 输出: Rex
print(my_dog.age)   # 输出: 3
my_dog.bark()       # 输出: Rex is barking!

                解释说明:

                1.__init__ 方法:这是类的构造函数,用于在创建对象时初始化对象的属性。self 参数                   指代对象本身,后面的参数 nameage 是我们传递给对象的参数。

                2.实例变量:每个对象都有自己的实例变量,例如 nameage,它们的值会因对象不同                  而不同。

                3.实例方法:通过 self 访问实例变量,并在方法中执行相关操作,例如 bark() 方法。

        3.面向对象的特性 

                Python的面向对象编程有三个核心特性:封装、继承和多态。 

                (1)封装

                        封装是指将对象的属性和方法封装在类的内部,通过接口来与外部通信,从而保证                          内部实现的隐藏。通过封装,可以使代码更具模块化和可维护性。例如,我们可以                          使用私有属性(在属性名前加上双下划线 __)来隐藏类的内部实现。

                (2)继承 

                        继承是指一个类可以继承另一个类的属性和方法,从而实现代码复用。例如,我们                          可以创建一个父类 Animal,并从中继承创建一个子类 Dog

class Animal:
    def __init__(self, species):
        self.species = species

    def make_sound(self):
        print("Some generic animal sound")

class Dog(Animal):
    def __init__(self, name, age):
        super().__init__("Dog")
        self.name = name
        self.age = age

    def make_sound(self):
        print("Woof woof")

# 创建Dog对象
my_dog = Dog("Rex", 3)
print(my_dog.species)  # 输出: Dog
my_dog.make_sound()    # 输出: Woof woof

                (3) 多态                        

                        多态是指不同的对象可以通过相同的接口进行调用,具体的实现可以有所不同。在                         上面的例子中,make_sound 方法在 AnimalDog 中都有定义,但它们的实现不                              同。这就是多态的体现。

                        通过这些特性,我们可以更加灵活地处理复杂的编程任务,使代码更具扩展性和可                          维护性。

三.总结 

        本课我们介绍了Python中的函数与类,了解了如何定义函数、使用参数,以及函数的特殊用法。同时,我们也学习了类的定义和使用,并深入探讨了面向对象编程的核心特性:封装、继承和多态。在实际开发中,函数和类是我们构建程序的基础,通过良好的结构设计,可以让我们的代码更加简洁、模块化和高效。在下一课中,我们将继续深入学习Python的高级特性,进一步提升编程能力。


如果有任何问题,欢迎在评论区留言,我将尽力为你解答。祝你编程愉快!

  • 10
    点赞
  • 7
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值