来源:自学PHP网 时间:2019-08-07 16:33 作者:小飞侠 阅读:次
[导读] Python基础学习之函数方法实例详解...
本文实例讲述了Python基础学习之函数方法。分享给大家供大家参考,具体如下: 前言 与其他编程语言一样,函数(或者方法)是组织好的,可重复使用的,用来实现单一,或相关联功能的代码段。 python的函数具有非常高的灵活性,可以在单个函数里面封装和定义另一个函数,使编程逻辑更具模块化。 一、Python的函数方法定义 函数方法定义的简单规则: 1. 函数代码块以 def 关键词开头,后接函数标识符名称和圆括号()。 函数demo: def test_method(): test_string = "test" return test_string 方法和函数的区别就是,方法是属于类里面的,可以获取调用类的属性和定义的成员,使用self访问,方法的定义如下: Class A: self.test_string = "test" def test_method(self): return self.test_string 注:如果方法没有使用类成员,则不需要带self,即方法和函数一致,此时也成为静态方法@staticmethod 二、函数和方法的参数类型: 1. 必备参数: 必备参数须以正确的顺序传入函数。调用时的数量必须和声明时的一样,必备参数定义在函数定义的括号()内。 2. 默认参数: 默认参数在调用方法或函数,不传入该参数时,会使用默认的值,默认值写在(内),必须在必备参数之后,如 3. 不定长参数: python函数除了可以定义默认参数之外,还可以定义可变参数,如*args和**kwargs: (1) 函数内部可变参数的名字前面有个 * 号,我们可以传入0个、1个或多个参数给可变参数,在函数内部,直接把变量 args 看成一个 tuple 就好了; 4. 匿名函数: python使用lambda来创建匿名函数: (1)lambda只是一个表达式,函数体比def简单很多; lambda的demo: sum = lambda arg1, arg2: arg1 + arg2; 调用: sum(1,2) # 返回3 三、方法的复用和继承: 1. 方法的继承: (1) 如果一个类继承了基类,则需要在这个类的构造函数(__init__())里面调用基类的初始化方法,即添加: 2. python函数没有重载功能: 函数重载主要是为了解决两个问题:
另外,一个基本的设计原则是,仅仅当两个函数除了参数类型和参数个数不同以外,其功能是完全相同的。 对于情况1,函数功能相同,但是参数类型不同,python 如何处理?答案是根本不需要处理,因为 python 可以接受任何类型的参数,如果函数的功能相同,那么不同的参数类型在python中很可能是相同的代码,没有必要做成两个不同函数; 对于情况2,函数功能相同,但参数个数不同,python 如何处理?大家知道,答案就是缺省参数。对那些缺少的参数设定为缺省参数即可解决问题。因为你假设函数功能相同,那么那些缺少的参数终归是需要用的; 3. 方法覆盖: 一个类用 四、Python函数与方法的其他知识: Python常用内置函数: (1) dir() 函数不带参数时,返回当前范围内的变量、方法和定义的类型列表;带参数时,返回参数的属性、方法列表。如果参数包含方法 (2) type()函数,type()只带一个变量参数则返回变量的类型,但是该函数如果带三个参数则可以返回新创建的类对象(动态创建类对象): # 使用type()函数定义类 # 实例方法 def __init__(self, name): # 实例属性 self.name = name # 类方法 @classmethod def study(cls): pass # 静态方法 @staticmethod def cal_student_num(): pass # 元类最大的作用不在于创建一个新的类 A = type( 'A', (object,), { 'role': 'student', '__init__': __init__, 'study': study, 'cal_student_num': cal_student_num }) (3) Python函数中,可以通过声明全局变量(global 变量名)来调用函数外部的变量,也可以通过将外部变量传参的形式传入函数内使用,global的方式会改变外部变量的值; 关于Python相关内容感兴趣的读者可查看本站专题:《Python函数使用技巧总结》、《Python面向对象程序设计入门与进阶教程》、《Python数据结构与算法教程》、《Python字符串操作技巧汇总》、《Python编码操作技巧总结》及《Python入门与进阶经典教程》 希望本文所述对大家Python程序设计有所帮助。 |
自学PHP网专注网站建设学习,PHP程序学习,平面设计学习,以及操作系统学习
京ICP备14009008号-1@版权所有www.zixuephp.com
网站声明:本站所有视频,教程都由网友上传,站长收集和分享给大家学习使用,如由牵扯版权问题请联系站长邮箱904561283@qq.com