1. python變數到底是什麼?
python和j**a中的變數本質不一樣,python的變數實質是乙個指標 int str,便利貼
a = 1
# 1. a貼在1上面
# 2. 它的過程是先生成物件,然後貼便利貼。
# 3. is 是指的標籤貼是否一樣。
a = 1
b = 1
這個是一樣,用的是小整數的內部inter機制的內部優化。
== 用的是__eq__這個魔法函式。
# 4. 常用的用法是isinstance或者type() is,這兩種是通用的。type實際上是指向了這個物件的。
2. del語句和垃圾**的關係:
py中的垃圾**採用的是引用計數。
# a = 1# b =a
# del a # 引用計數器減去1,等於0的時候py會**。
a = object
()b =a
del a
print(b) # b可以列印,a列印不出來了
print(a)
# c:\python37\python.exe f:/quant/練習/chapter01/type_object_class.py
# traceback (most recent call last):
# file
"f:/quant/練習/chapter01/type_object_class.py
", line 9, in
# print(a)
# nameerror: name 'a
'isnot defined
# object at 0x000002909f4aaa70>#
# process finished with exit code
1class
a: del __del__(self):
pass
記住:對應的魔法函式是__del__
3. 預設空的list的可變,乙個景點的引數傳遞問題。
def add(a,b):a +=b
return
aclass
company:
def __init__(self,name,staffs=):
self.name =name
self.staffs =staffs
def add(self,staff_name):
def remove(self,staff_name):
self.staffs.remove(staff_name)
if __name__ == '
__main__':
# a = 1
# b = 2
# c =add(a,b)
# print(c)
# print(a,b)
# 3#
12# a = [1,2
] # b = [3,4
] # c =add(a,b)
# print(c)
# print(a,b)
# [1, 2, 3, 4
] # [
1, 2, 3, 4][3, 4
] # a = (1,2
) # b = (3,4
) # c =add(a,b)
# print(c)
# print(a,b)
# (1, 2, 3, 4
) # (
1, 2) (3, 4
) com1 = company("
con1
",["
bobby1
","bobby2"])
com1.add(
"bobby3")
com1.remove(
"bobby1")
print(com1.staffs)
# ['bobby2
', '
bobby3']
com2 = company("
com2")
com2.add(
"bobby")
print(com2.staffs)
# ['bobby']
com3 = company("
com3")
com3.add(
"bobby5")
print(com2.staffs,com3.staffs)
# ['bobby
', '
bobby5
']['
bobby
', '
bobby5']
print(com2.staffs
iscom3.staffs)
# true
# 這個原因是運用了乙個可變物件=
print(company.__init__.__defaults__)
記住:在類中可變物件的話容易造成錯誤的,把a就行修改掉了。
記住:其實這裡就是引用引數的問題。引用引數是用可變物件來實現的。
Python說文解字 雜談07
1.深入dict from a 2.常用方法 a bobby2 clear a.clear copy,返回淺拷貝 new dict a.copy new dict bobby1 company imooc3 深拷貝 import copy new dict copy.deepcopy a new d...
Python說文解字 雜談04
1.鴨子型別 當你看到乙隻鳥走來像鴨子,游泳起來像鴨子,叫起來也像鴨子,他麼他就可以叫做鴨子。任何可迭代的物件。一樣的方法,可以用可迭代的話,就可以迭代的組合列印。getitem 可以塞到任何的類中,跟鴨子型別一樣,指定相同的方法名。魔法函式正是充分運用了鴨子型別,能夠被本身呼叫。class cat...
Python說文解字 雜談02
1.py中三個中啊喲的概念type object和class的關係。type生成了int生成了1 type class obj type用來生成類物件的 object是最頂層的基類 type也是乙個類,同時type也是乙個物件 結論 類是由type這個類生成的物件。obejct是所有類都繼承的基類。...