列编辑模式
Alt+鼠标左键选择多列
等号赋值内存原理,值传递和址传递?
每次给变量赋值时,都会产生一个新的地址空间,将新内容的地址赋值给变量,但是对于相同的值,地址不发生变化。
对复杂的数据类型(列表、元祖、字典),如果添加某一项元素,或者添加几个元素,不会改变其本身的地址,只会改变其内部元素的地址引用,但是如果对其重新赋值时,就会重新赋予地址覆盖就地址,这时地址就会发生改变。
id()
id函数(python的内置函数,用来查看对象的身份,也就是内存地址)
列表生成式
根据已存在的可迭代对象推导出一个新的list。
a = [1, 2, 3, 4]
a = [x * 2 for x in range(5)] # 列表生成式
print(a)
结果:[0, 2, 4, 6, 8]
a = [
[1, 2, 3, 4],
[3, 4, 3, 4],
[5, 6, 3, 4]
]
a = [x[:2] for x in a] # for x in a表示元素x来自a
print(a)
结果:[[1, 2], [3, 4], [5, 6]]
匿名函数,高阶函数,装饰器
1.匿名函数不用def来定义,使用lambda关键字
声明匿名函数add():add = lambda a,b:a+b
调用add: add(10,20)
匿名函数有参数,只能返回一个表达式的值,不能直接调用print()函数
2.装饰器,装饰器就是用闭包实现的
闭包特点:外部函数包含内部函数、外部函数的返回值是内部函数本身、内部函数使用了外部函数的局部变量。
def f1(fff):
def f2():
print('内部函数') # 验证用的代码
fff()
return f2
@f1 # 装饰器,等同于f3=f1(f3)将f3作为参数传入f1,里面的fff变成了f3,先执行了f2输出print,然后再调用f3
def f3():
print(111)
f3()
操作符优先级
1.算术运算符:加+,减 -,乘 *,除 / ,取模%(求余),取整除 //(求商),幂 **
2.比较运算符:大于 >,小于 <,等于 ==,小于等于 <=,大于等于 >=,不等于 != 计算结果是TRUE和FALSE
3.赋值运算符:等于 =,加等于+=,减等于-=,乘等于=,/=,%=,//=,*=,
4.位运算符:<<(左移), >>(右移), ~(取反), &(与), | (或),^(异或)
5.逻辑运算符:逻辑与and,逻辑或or,逻辑非not
6.成员运算符:in ,not in,.
7.身份运算符:is,is not
优先级
逻辑运算符<成员运算符<身份运算符<比较运算符<位运算符<算术运算符<正负号<幂运算
类继承,self理解,静态方法
1.当我们定义一个class的时候,可以从某个现有的class继承,新的class称为子类(Subclass),而被继承的class称为基类、父类或超类(Base class、Super class)。多重继承: 一个子类具备多个父类的特征
2.self是当前对象。
3.静态方法 static:静态的意思是一直存在在内存当中,可以随时调用,全局的,不会动态新生成和销毁。类中的静态方法不需要实例化就可以随时调用。
网友评论