python中的深拷贝和浅拷贝的定义:
在python中对象的赋值就是对象的引用,当创建一个对象把他赋值给另一个变量时,Python只是拷贝了对象的引用而已。
浅拷贝:拷贝了最外围对象本身,内部的元素只是拷贝了一个引用而已,也就是只复制对象,对象的引用不复制。
深拷贝:外围和内部元素都进行了拷贝对象本身,而不是引用,把对象复制了一遍,并且该对象中引用的其他对象也复制。
python中的函数:
def foo(): 定义函数
return 1
foo() 调用函数
定义类:
class 类名:
def 方法1(self,参数列表):
self指哪一个对象调用的方法就是哪一个对象的引用。
pass
def 方法2(self,参数列表):
pass
python捕获异常:
try:
执行的代码
except:
错误的代码
面向对象和面向过程
面向过程:强调的是步骤。
面向对象:强调的是功能。
封装:根据职责将属性和方法封装到一个抽象的类中。
继承:实现代码的重用
多态:不同的子类调用相同的方法产生不同的结果
python中的闭包:
闭包指根据不同的配置信息得到不同的结果。
id命令:
python中的id命令用来查看内存地址。
python中的装饰器:
为了给某段程序添加功能,但该程序已经上线或已经被使用,那么不需要批量修改源代码装饰器用于拓展原来
函数功能,特殊之处在于他的返回值也是一个函数。使用@符号可以将装饰器应用到函数。
@outer 一个修饰符就是一个函数。
python中的kwargs和*args:**
**kwargs参数表示的就是一个字典。
*args用来将参数打包成tuple给函数用。
python的内存分配以及垃圾回收:
python采用计数的方式来管理分配内存,python的每个对象都有一个引用计数,这个引用计数表明了有多少个对象指
向他,计数为0即表示释放。
python中的GC模块主要运用了引用计数来跟踪和回收垃圾,还可以通过‘标记--清除’解除可能出现的回环问题。
python多线程:
1.解耦降低关联性
2.支持并发
3.支持忙闲不均,防止以此制造太多来不及处理,等生产者慢下来再处理。
python遍历列表的4种方法:
app_list = [1234,5678,9999]
for app_id in app_list:
print app_id
for index,app_id in enumerate(app_list):
print index,app_id
enumerate()说明
enumerate()是python的内置函数
enumerate在字典上是枚举、列举的意思
对于一个可迭代的(iterable)/可遍历的对象(如列表、字符串),enumerate将其组成一个索引序列,利用它可以
同时获得索引和值enumerate多用于在for循环中得到计数
for i in range (len(app_list)):
print i,app_list[i]
for app_id in iter(app_list):
print app_id
iter()函数有两种用法,一种是传一个参数,一种是传两个参数。结果都是返回一个iterator对象。
python类型转换:
num_list=[1,2,3,4]
type(num_list)
num=tuple(num_list) 转换为元祖类型
type(num_list)
python删除列表重复数据:
b=list(set(num_list))会从大到小排列
python如何复制对象: