# python中的變量和java中的變量本質不同,python的變量實質是一個指針,int,str,便利貼
a = 1
a="abc"
#1.a貼在1上面
#2.先生成對象而後貼便利貼
a = [1,2,3]
b=a
print (id(a),id(b))
print (a is b) #is就是說它們兩是否是同一個對象
b.append(4)
print(a)
複製代碼
#is就是判斷兩個對象是否相同,==是判斷值是否相等
a=[1,2,3,4]
b=[1,2,3,4]
print (a is b)
print(a==b)
#這時a和b是兩個duixiang
class People():
pass
person = People()
if type(person) is People:
print ("yes")
可是當a=1,b=1時候是相等的,python內部的優化機制
複製代碼
#python中的垃圾回收的算法是採用引用計數,當引用爲0則回收
a=1
b=a
del a
class A:
def __del__(self):
pass
#能夠重載__del__魔法函數幫咱們作些事
複製代碼
def add(a,b):
a+=b
return a
class Company:
def __init__(self,name,staffs=[]):
seif.name=name
self.staffs=staffs
def add(seif,staff_name):
self.staffs.append(staff_name)
def remove(self,staffs_name):
self.staffs.remove(staff_name)
if __name__ =="__main__":
com1 = Company("com1",['bobby1','bobby2'])
com1.add('bobby3')
com1.remove('bobby1')
com2=Company("com2")
com2.add("bobby")
print(com2.staffs)
print(Company.__init__.defaults__)
com3=Company("com3")
com3.add("bobby5")
print(com2.staffs)
print(com3.staffs)
print(com1.staffs)
a=1
b=2
c=add(a,b)
print(c)
print(a,b)
a=[1,2]
b=[3,4]
a=(1,2)
b=(3,4)
print(c)
print(a,b)
複製代碼
對象引用可變性,python變量的本質,is和==的區別,del回收機制,參數傳遞錯誤.java