1.不要在模块之间相互调用,否则会出现麻绳现象,避免循环导入。
==:用来判断值是否相等(分别指向两个空间,但是空间里面的内容相同)
is:判断指向是否相等。
例:
a=[11,22,33] b=[11,22,33] a==b #True a is b #False
id(a)
#1398041200093640
id(b)
#1398041200093600
面试常问:
深拷贝:能复制的东西比较多,能够把值传过去,但是指向的地址不相同。
潜拷贝:能复制的比较少,例如:把一个变量赋值给另一个变量,只是把地址传过去(两个变量指向同一个地址);,但是值没有传过去。
copy():有的时候能够完成想用的功能(对于可变类型)
对于不可变类型:copy相当于浅拷贝
位运算:快速完成一个值得乘或除
<<:左移
>>:右移
私有化
1 class Test(object): 2 def __init__(self): 3 self.num=100 4 5 t=Test() 6 t.num=200 7 print(t.num)
添加的时候有下划线,就后面都要带着,如果添加的时候没有,那就都没有
但是带着下划线的表示别的语言中的私有属性
方法名前面的叫私有方法,
在外面不能直接调用
class Test(object):
def __init__(self):
self.__num=100
t=Test()
t.__num=200
print(t.num)
xx:公有变量
_x:单前置下划线,私有化属性或方法。from somemodule import 禁止导入,但是类,对象和子类可以访问
__xx:前置下划线,用于避免与Python中的关键字冲突,后置下划线的效果一样。
__xx__:双前后下划线,用户名字空间的魔法对象或者属性
若 import 模块是直接可以导入的,所以Python中是伪私有
原文:https://www.cnblogs.com/gaowenxingxing/p/10504378.html