- 博客(9)
- 收藏
- 关注
原创 闭包
1. 函数引用def test1(): print("--- in test1 func----")#调用函数test1()#引用函数ret = test1print(id(ret))print(id(test1))#通过引用调用函数ret()运行结果:--- in test1 func----140212571149040140212571149040---...
2018-05-24 21:03:43 144
原创 迭代器
迭代是访问集合元素的一种方式。迭代器是一个可以记住遍历的位置的对象。迭代器对象从集合的第一个元素开始访问,直到所有的元素被访问完结束。迭代器只能往前不会后退。1. 可迭代对象以直接作用于 for 循环的数据类型有以下几种:一类是集合数据类型,如 list 、 tuple 、 dict 、 set 、 str 等;一类是 generator ,包括生成器和带 yield 的generator fun...
2018-05-24 15:19:05 128 1
原创 属性property
1 私有属性添加getter和setter方法class Test(): def __init__(self): self.__num = 10 #私有属性 def setter(self,num): self.__num = num def getter(self): return self.__num2 使用property升级ge...
2018-05-24 10:43:54 151
原创 私有化
xx:公有变量_x:单前置下划线,私有化属性或方法,from somemodule import * 禁止导入,类对象和子类可以访问__xx:双前置下划线,避免与子类中的属性命名冲突,无法在外部直接访问(名字重整所以访问不到)__xx__:双前后下划线,用户名字空间的魔法对象会属性。例如:__init__,__不要自己发明这样的名字xx_:单后置下划线,用于避免与Python关键字冲突通过name...
2018-05-24 09:16:22 130
原创 copy.copy()与copy.deepcopy()的详解
copy.copy()元组和列表调用这个方法效果也不一样。元组的效果:a = [1,2,3]b = [4,5,6]c = (a,b)e = copy.copy(c)可以看到:e和c是指向了同一个地址。列表的效果:可以看到:c和e指向了不同的地址,但是c和e里面的内容是指向了相同的地址copy.deepcopy()这个是深拷贝,并且是递归的形式拷贝的元组的效果:可以看到:它是把所有的内容都进行...
2018-05-23 17:38:48 6289
原创 深拷贝、浅拷贝
深浅指的就是你能不能把这个东西复制过去,以及你能复制多少的问题 浅拷贝:你将一个变量a赋值给了变量b,但是b也只是指向量a的地址,没有把数据拷贝过去,这就是浅拷贝。如下: 可以看到b只是指向了a的地址,并没有新生成新的空间,里面是11,22,33。 深拷贝:就是你有的东西我也应该有一份。 怎么做? 引入copy模块 import copy ...
2018-05-23 16:36:14 129
原创 == is的区别
==:用来判断值是不是相等is:用来比较两个引用是否指向了同一个对象(引用比较)其中 c = a ,就是c 也指向了a所指向的地址
2018-05-23 15:53:47 221
原创 python 循环导入
问题:a中导入了b,其中b中又导入了a,就进入了死循环的问题?解决办法:可以把a,b当做子模块这些子模块之间不要相互之间调用,此时可以加入一个新模块来调用这些子模块,这样就避免了模块之间的循环导入问题。 ...
2018-05-23 15:44:50 548
原创 python import全解
1 import搜索路径import syssys.path搜索顺序是按照上面的路径依次进行的,如果我们需要的路径不在上面的话,使用sys.path.append("路径名")2 模块的重新加载当加载一个模块之后,又对模块进行了修改,此时即使使用import重新加载结果还是不会改变,要想解决就使用reloadfrom tmp import *reload("模块名")此时在调用这个模块里的方...
2018-05-23 09:31:44 120
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人