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,两个星号会把参数转为dic
def f1(**kwargs):
print(kwargs,type(kwargs))
dic = {"k1":123}
f1(k1 = dic) #执行结果为{'k1': {'k1': 123}} <class 'dict'>
f1(**dic) #执行结果为{'k1': 123} <class 'dict'>
高级装饰 @符 属于高级部分 看不懂的可以先过
装饰就是有规律的把某一种事情按照一定的方法去执行
示例代码:去火锅店吃火锅的一个流程
吃火锅必点的是一个锅底然后点菜
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:的调用主要是为了判断方法的类型