第六章 抽象
def * ** global filter __ issubclass ._bases_ isinstance hasattr
1、函数
def feb(num) 使用def关键字,在函数开头写下字符串,会作为函数的一部分进行存储,又称文档字符串,可以通过 num._doc_访问
函数不返回任何参数,对外表现为默认值None
在函数内赋值不会影响外部,不会改变参数
字符串,元组和数字不可变,列表函数内操作可变
def hello(greeting='Hello',name = 'world') 参数设置默认值,参数名和值要严格对应
def printParams(*params)
printParams(1,2,3,4) 星号将元素转化为元组(1,2,3,4),可以输入多个参数反正会以元组形式出来,也可以反转,printParams((1,2))
def printParams(**params)
printParams(x=1,y=2) 双星号处理关键字参数返回字典['x':1,'y':2],也可以反转printParams({x:1,y:2})
2、作用域
global()['name'] 在和局部变量重名时,调用全局变量
global name 声明操作的是全局变量
def fun1(num1)
def fun2(num2)
return num1*num2
return fun2
fun1(3)(4) 函数嵌套,闭包。
filter(isNum,seq) 基于一个返回布尔值的函数对列表元素进行过滤
3、面向对象
多态、封装、继承
类中的self,相当于别的语言中的this
def __inaccessible(self) 双下划綫,表示方法不可见,private
class SRAMFliter(Filter) 定义子类,括号内是继承的父类
issubclass(SRAMFliter,Fliter) 返回前者是否是后者的子类
SRAMFliter._bases_ 返回基类
isinstance(jane,Girl) 判断一个对象是否是一个类的实例
hasattr(jane,'talk') 判断一个对象是否包含某个方法