03全局变量、函数、类

一.  全局变量

1) python不允许直接在函数内部改变全局变量,如果使用赋值语句,会在函数内部定义一个局部变量。

2) 如果希望修改全局变量的值,使用global声明一下变量即可

3) 一个py文件的结构

 

 

二.  函数

1.    赋值语句

1) 在函数内部,针对参数使用赋值语句,无论是可变还是不可变,都不会影响实参的数值。

2) 如果使用方法修改可变参数的值,实参的值会被改变。

def demo(num_list)

        num_list.append(9)

        print(num_list)

gl_list=[1,2,3]

demo(gl_list)

print(gl_list)

两个输出语句输出内容相同#[1,2,3,9]

3) 使用+=的时候,相当于使用了extend方法

2.缺省参数

1) 缺省参数(函数参数有默认值)必须定义在函数参数最后

def print_info(name,title,gender=True)

2)  如果函数有多个缺省参数,调用时想给具体的参数传递数据,可以gl_list.sort(reverse=true)

3. 多值参数

1) 一个函数想接受多个数据

*args可以接收元组,**kwargs可以接受字典

def demo(num,*nums,**person)

2) 拆包语法:在调用带有多值参数的函数时,如果希望:

       * 将一个元组变量,直接传递给*args,可以在元组变量前,增加一个*

       * 将一个字典变量,直接传递给*kwargs,可以在字典变量前,增加两个**

三.类

1. 语法格式

 

 

1)第一个参数必须是self(self相当于java的this)

2)定义一个对象: 对象名=类名()

       对象是对类的引用

2.    初始化

1)___init__()初始化方法专门用来定义一个类具有的属性

2)定义对象时,就会自动调用初始化方法

 

 

3.    销毁

当对象从内存中被销毁时,会自动调用__del__()方法

4.    __str__方法

希望使用print输出对象变量时,能够打印自定义内容(默认是打印类名及地址),就可以利用__str__方法

 

默认情况下:

 

格式:

 

5.    私有属性、私有方法

1) 定义私有属性之前名字要加两个下划线__biangliang

2) 定义私有方法之前名字要加两个下划线__fun()

3) 外界不能直接访问

4) 当使用_类名__私有属性/方法的格式,可以访问

四、继承

1.格式

class 类名(父名)

子类的对象和方法内部都不能直接访问父类的私有属性和私有方法

2. 重写

直接命名和父类相同的方法就可以,父类方法被覆盖,还是要调用原来父类的方法的话,用super().来调用

3. 多继承

1) Python支持一个子类继承多个父类:class 类名(父1,父2,….)

2) 如果不同的父类存在同名方法或属性,应该尽量避免使用多继承

4. 类属性和类方法

1)直接在类中定义,直接类名.来调用

2)类属性不记录具体对象的特征

3)也可以用对象名.来调用,但不推荐;如果使用对象名.属性=值 赋值语句,只会给对象添加一个属性

4)类方法

 

 

在类方法内部可以直接访问类属性或者调用其他的 类方法。

5.    静态方法

不需要调用实例属性或类属性

 

 

6.    方法的选择

 

 

posted @ 2019-01-26 17:27  菜白小系瓦  阅读(200)  评论(0编辑  收藏  举报