Python基础--3
函数:独立定义 独立调用 def foo() pass foo() 方法:依赖定义,依赖调用 方法存在于类的内部
1.变量作用域 全局 本地 闭包 局部
全局:global
一般在函数体外定义的变量成为全局变量,在函数内部定义的变量称为局部变量。
全局变量所有作用域都可读,局部变量只能在本函数可读
函数在读取变量时,优先读取函数本身自有的局部变量,再去读全局变量全局变量默认可读,如果需要改变全局变量的值,需要在函数内部使用global定义
name = 'zhangsan' #全局变量 def f1(): age = 18 #局部变量 print(age,name) def f2(): age=19 #局部变量 print(age,name)2.面向对象编程
面向对象编程 类 继承:多继承 方法 类方法 对象方法 构造方法 静态方法定义类:clss
类多继承,其中类里面以__开始方法都是内置的来自于父类
注意:构造方法里面的self与java中的this一样,但是this是可以不写,self不同必须存在
如果子类中定义与父类同名的方法或属性,则会自动覆盖父类对应的方法或属性
示例代码:
class person: # name="zs" #filed #__name=None def __init__(self,name=None): self.name=name def show(self,s): #this show(this){} java类似 print(self.name,s) p=person("wu") p.show("aa") print(p.name)变量如果是两个下划线定义的方法都具有特殊的意义
"单下划线" 开始的成员变量叫做保护变量,意思是只有类对象和子类对象自己能访问到这些变量;
"双下划线" 开始的是私有成员,意思是只有类对象自己能访问,连子类对象也不能访问到这个数据例如:
class person: def __myshow(self): print("aaaa") def show(self): self.__myshow() p=person() p.show()函数 方法的创建:学习函数
语法
df 函数名称(参数):
#函数体
参数:普通
关键参数
动态参数一个星号,会把所有参数转为tupe,两个星号会把参数转为dicdef f1(**kwargs): print(kwargs,type(kwargs)) dic = {"k1":123} f1(k1 = dic) #执行结果为{'k1': {'k1': 123}} <class 'dict'> f1(**dic) #执行结果为{'k1': 123} <class 'dict'>高级装饰 @符 属于高级部分 看不懂的可以先过装饰就是有规律的把某一种事情按照一定的方法去执行示例代码:去火锅店吃火锅的一个流程吃火锅必点的是一个锅底然后点菜import types
def shucai (n): print("蔬菜:¥7") if type(n)==types.FunctionType: return n()+7 return n+7 def feiniu (n): print("肥牛:¥27") if type(n)==types.FunctionType: return n()+27 return n+27 @feiniu @feiniu @shucai def huoguo(): print("麻辣锅底:¥12") return 12 print(huoguo)types:的调用主要是为了判断方法的类型