Python說文解字 雜談08

2022-09-18 10:15:22 字數 2605 閱讀 5902

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是所有類都繼承的基類。...