python小记

str

list

tuple

map

set

标识符-对象引用
标识符 = 名字 获取对象引用,非标识符之间关联
容器不可变:保持引用同一个容器,不确保容器内元素不可变

elif

dic 字面量{"key”:val,} key不可变
set 字面量set(),看做容器类型转换? 元素:add remove 集合:& |

修改不可变对象,返回新对象。设计不统一,(修改器)元组不可修改(报错),(api)string可修改(返回新对象)

类型转换作为函数 int float str bool

省略return返回None

pass占位

类型检查: isinstance() raise TypeError

tuple可省略括号,字面量处都行(大前提无歧义,函数调用可变参数处,会降级为元素)

字符串单元素切片为str isinstance(s[0], str)

函数定义中形参=default

较好实践:默认参数指向不变对象

//默认参数为全局生命周期的变量?

可变参数
定义处v
调用处
v,或直接 arg1,arg2
定义函数关键字参数m
相应的解字典
m,或直接 name=val
以上不受限
限制方法:
定义处*(已经有可变参数则省略,否则SyntaxError),name1,name2
//位置参数不可设default(与可缺省设计冲突),命名参数可以

参数定义的顺序必须是:必选参数、默认参数、可变参数、命名关键字参数和关键字参数
(a, b, c=0, *, d=0, **kw)

切片[start:end(不含):jump]

for a in
dic——key;list、tuple——val设计上不统一,enumerate后返回元组,还是不统一
from collections import Iterable
//Using or importing the ABCs from 'collections' instead of from 'collections.abc' is deprecated since
//from collections.abcs import Iterable
isinstance(a,Iterable)

enumerate 转变为索引:元素对

range(start,end)

列表表达式 [exp(x) for x in if 无else [, for]]
可以多层for

三元 v1 if cond else v2

生成器
g= ()//列表表达式语法
val = next(g)

def
yield

class Student(object继承):

def __init__(self(自动捕获), name, score):
    self.name = name

实例方法
def foo(self):
私有变量
self.__v
类变量
无self前缀
继承,重写
类型判断 isinstance

多态:鸭子类型

type() == types.FunctionType BuiltinFunctionType LambdaType GeneratorType

dir()

getattr()
setattr()
hasattr()

posted @ 2021-01-31 13:04  qmchao  阅读(32)  评论(0)    收藏  举报