python蟒蛇书_书中涉及函数_下

一、函数

1.函数的定义:def 函数名(参数):               另起一行空四格后代表函数内容,记得函数声明的之后加号,第二行中"""   """称为文档字符串,可以用来注释描述函数是做什么的,文档字符串用三引号括起来,python使用它来生成有关程序中函数的文档。

def 函数名(参数1,参数2):
    """注释(依据这里注释生成程序函数文档)"""
    函数内容
    return 返回值

2.函数参数的传递方式与C语言基本相同。但python可以指定参数的默认值,只需在定义函数的时候在形参的位置赋值:def 函数名(形参='默认值'),如需修改数值则在调用函数时再次赋值就可以覆盖默认值:函数名(形参='新赋值')

3.在python中函数传递的参数和返回值可以是列表字典 。如果想保留原参数列表,也可以传递列表的切片list[:]这样原列表不受函数中改变的影响。但传递切片需要重新建立列表,若列表过大,将严重影响程序运行速度

4.可以在一个函数中调用另一个函数,有助于将复杂的任务划分成一系列步骤

5.传送任意长度参数,python可以在定义函数的时候不定义参数大小(类似于C语言中指针),表示的时候:要在前面加个*代表任意长度列表,在前面加两个**代表任意长度字典,但任意长度参数必须放在固定位置参数的后面def 函数名(固定参数1,*任意长参数2,**任意长度字典3):

6.导入模块与函数。与C中include类似,都是可以调用用其它文件中的函数,但python中的关键字是import,具体有以下3种导入方法:1整个文件导入,import 文件名  (文件名不需要加.py后掇),在使用函数时需要加点“.”:文件名.函数名;2导入特定函数,要导入文件中的某个函数,from 文件名 import 函数名     ,这时再使用函数时,不需要再写文件名,可直接用函数名;3导入特定函数并改名,from 文件名 import 函数名1 as 函数名2   ,有时函数名1会与目前程序中函数名称冲突,改为函数名2可化解冲突,多用于名称冲突化解简化名称。同时as也可以用来给文件(模块)起别名 import 文件名1 as 文件名2 ;4导入全部函数 from 文件名 import *   (不推荐,因为看不到函数名称),导入全部函数,并且后续使用不需要再写文件名,可直接用函数名。

7.定义函数给开参指定默认值时,等号两边不要有空格。

二、类

1.类是一个函数的大集合,用来概括某个抽象的物体或行为,加入参数调用就是实例化,创建类要用class关键字+类名+,通常约定类的首字母大写表示类。具体形式为:

class 类名:
    """对类的描述,约定类名首字母大字"""
    
    def __init__(self,参数1,参数2,......):
        """初始化类中所用参数"""
        self.参数1=参数1
        self.参数2=参数2

    def 函数1(self):
        """实现功能一"""
        ......(调用参数时依然要使用self.参数)

    def 函数2(self):
        """实现功能二"""
        ......(调用参数时依然要使用self.参数)

2.类中的函数称方法,其中至少要包括__init__(self,参数1,参数2,...  函数,init为前后双下划线,这个函数用来初始化类中所有的参数,同时把这些参数传到类的其它函数中,self是这些参数的载体(类似C中的结构体),在init函数中所有参数必须都有   self.参数1=参数1   这句话,相当于把形参放在结构体self中,然后才能在后面的功能(函数)中使用这些参数

3.其它函数也要传入self,在其它函数调用参数时同样要有self前辍,如   self.参数1   形式

4.类的实例化,实例化就是加入参数使抽象的类成为具体的实例。调用类加入参数就是实例化,但是参数只需要加__init__函数定义的self之后的参数,实例名 = 类名(参数1参数2)

5.调用实例中的参数   实例名.参数1   调用实例中的方法(函数)   实例名.函数1()   

6.增加新的参数,在__init__()函数中,除了在()中声明的形参,还可以在函数中直接声明新参数并赋值,

class 类名首字母大字:
    """对类的描述"""
    
    def __init__(self,参数1,参数2):
        """初始化类中所用参数"""
        self.参数1=参数1
        self.参数2=参数2
        self.参数3=默认值(数字或字符等任何值)

如上,因为参数3并没有在()中声明,因此在调用类时不用对参数3赋值,所以并不会改变默认值(参数的默认值也可以在__init__(参数2=XXX)中直接赋值)

6.1修改默认值:1直接访问修改,类名.参数3=XXX   ;2在类中设置函数,外部调用函数修改

class 类名:
    """对类的描述"""
    
    def __init__(self,参数1,参数2):
        """初始化类中所用参数"""
        self.参数1=参数1
        self.参数2=参数2
        self.参数3=默认值

    def xiugai(self,形参名)
        self.参数3=形参名

这样在外部调用类中的函数就可以修改:类名.xiugai(要改为的值)

7.类的继承,class 新子类名(要继承的父类名):   ,类的继承使新类可以直接使用父类的所有函数(功能),相关于完全复制了代码。继承应注意,1是父类必须在当前文件中、2是父类要在子类前面出现,3是__init()__函数要重新初始化,super().__init__(除self以外所有参数)

class 子类名(父类名):
    """类的继承"""
    
    def __init__(self,参数1,参数2):
        """初始化类中所用参数"""
        super().__init__(参数1,参数2)

7.1为子类添加属性(参数),可以采用上面类增加参数的方式

8.类的导入方式与函数的导入方式相同,起别名方式亦相同,同样不推荐使用form module_name import *   这种方式导入,因为用其它方式可以一目了然的看到导入了哪些类,而使用这种方式看不出来,还容易在后续起名声明中引发重复,这种重复将会很难诊断清楚。

9.python中的标准库,里面包括有很多类和方法(函数),导入后就可以用,导入方法同上

10.类的编码风格:1驼峰命名法,将名中的每个单词首字母大写不使用下划线,实例化后实例名、函数名、模块名都小写并在单词间加下划线;2加文档字符串"""   """说明类或函数的作用;3同时导入标准库和自写模块时,先写导入标准库的import语句,空一行,再写导入自写库的import语句,这样更清楚每个模块来自哪里

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值