python3中定義類函式引數中加self和不加的區別

2021-04-12 18:06:58 字數 1838 閱讀 1287

1樓:育知同創教育

self是需要在類中使用的,你如果不加,你在這個類成員函式就是靜態方法,無法直接呼叫類中的方法以及成員,需要構造一個類例項,self免去了你自己構造類例項。

python3 中定義類函式引數中加 self 和不加的區別在哪

2樓:天天不看

class a:

def fun():

pass

# 這種就是靜態函bai數du,一般用zhi裝飾器 @staticmethod 修飾

class b:

def fun1(self):

pass

# 這種就是成員函式,

類例項可以dao

直接呼叫

@clas**ethod

def fun():

pass

# 這種是類函式,要求第一個參數列示類( cls )。也就是說,除了裝飾器 @clas**ethod 外,還要求它的定義如 def fun(cls,...)。

這是通過類直接呼叫的,如 a1.fun(...)

昨天也碰到了相同的問題,我在 notebook 裡面有些:

python3 中定義類函式引數中加 self 和不加的區別在哪

3樓:匿名使用者

self是需要在類中使用的,你如果不加,你在這個類成員函式就是靜態方法,無法直接呼叫類中的方法以及成員,需要構造一個類例項,self免去了你自己構造類例項。

python的類中引用成員變數必須加self嗎

4樓:汲城濮昊昊

類(class)初始化之後會得到例項(instance)。

self就是用於代表初始化的到的例項。

明確地寫一個self引數,使得類的方法(method)和普通的函式(function)本質上沒有差異,所有的輸入引數都顯示地傳遞到方法/函式當中。

當然作為類的方法,作用的對

python 方法中變數加self和不加的區別

5樓:氐彰詭祕褂

如果加self,一個類中各個函式可以通過這個self聯絡起來,(在類函式裡也加self)

python之為什麼類中函式的變數宣告要加self

6樓:

lass a:

def go(self):

self.one= 'sdf'

def go1(self):

print self.one

a = a()

a.go()

a.go1()

sdf==加了self,以後,這個變數就變成了全域性變數,在類中的其他函式中也可以呼叫。

python中的類中屬性元素加self.和不加self.的區別

7樓:尐二瓜

在類中,self只能在函式中使用,表示的是例項屬性,就是每個例項可以設定不值,而不相互影響。

如果在類級別使用沒有self的屬性,是類屬性,一般作為全域性變數來用的。

如果解決了您的問題請採納!

如果未解決請繼續追問!

8樓:小法

當你想讓這個變數成為這個類的子變數時

class lc():

def __init__(self):

self.a = 5

**alllc = lc()

print **alllc.如果不加self的話 , 那麼就不能 **alllc.a 這樣訪問了!

python3用read 函式讀取檔案兩次,就變成空字串了

python在讀取bai檔案的時候是根據游標位置du來讀取zhi的。讀一行 以後dao游標位置到了 下一行。內再來個容read又到了下一行。想要重新從頭開始讀的話用f.seek 0 將游標位置放到最前面。這樣再f.read 就是第一行的內容還有個方法是f.tell 告訴你當前游標的位置。你可以把檔案...

python3的format中s的用法

抄格式襲化字串型別數bai據 表示右對齊15個字du符,左側空zhi 白預設用空格填充 表示左對齊加dao 小數點一共8位的浮點型小數,保留小數點後兩位 中間的冒號,就是分隔兩個資料的分隔符 所以print format length 23.87501 這一句的執行結果是 網頁連結見此連結裡的5.8...

Python中函式在類的之下定義的呼叫問題

ball是一 個抄類,類定義 在 最前襲面 myball ball ball 生成 一個ball類的例項,myball是一個ball類例項myball.bounce 呼叫 類方法bounce python 在一個類中函式呼叫可以在函式定義之前嗎 兩種位置都試一下唄,程式設計需要有探索的勁兒,不然文件...