Ⅰ python中self是什麼
python中的self就相當於C++中的this指針
也就是指向對象本身的指針
self.name = name 就是當前對象的成員變數name賦值為name。
Ⅱ python中的self是什麼
class Name():
def __init__(self, name):
self.name = name
def say(self):
print 'Hello, %s' % self.name
如果不用self,那該怎麼實現say(),非常難。
__inti__(self.name)叫做構造函數,凡是Name類的一個對象被創建,先運行構造函數,構造函數需要的參數就是類所需要的參數。 比如 a = Name('Ricky') 其實是 給__init__(self,name)提供參數。而self就說明是類的變數,類里別的函數也可以用的!
這是面向對象編程思路的一個瓶頸,希望你能弄懂。
Ⅲ python新手提問 謝謝大神了
這個報錯的原因是你的縮進少了,導致 draw() 方法不在 Ball類 裡面, 辦法是從17到27行全部再往後縮進一個單位。不幸的是,我剛調試了一下,你這段代碼不光是有這一個問題。靠你自己慢慢找了。
Ⅳ Python中的self有啥用 self.name=name這句話有啥作用
self是對「對象」自身的引用。相當於c++中的this。python中self在類的方法中必須以傳入參數寫在函數的參數列表中。它實際上是指向類的對象的一個類似於C++中指針的私有變數。
python規定:訪問類成員時,需要在前面加上this。這里,this.name = name表示為Person類添加了屬性name。
如果變數前不加this,則視為局部變數。這個變數會在方法運行結束後失效。而屬性在整個類的范圍內都是有效的。
self是只有在類中才會有的。self在定義類的方法時是必須有的,雖然在調用時不必傳入相應的參數。
(4)Python的self的id屬性擴展閱讀:
1、if 語句
1)基本用法:
if 要判斷的條件:條件成立的時候,要做的事情
else:條件不成立的時候,要做的事情
if和else語句以及各自的縮進部分都是一個完整的代碼塊
2、if 邏輯運算
and:
# 條件1 and 條件2
# 兩個條件同時滿足,就返回True
# 兩個條件都不滿足,返回False
Ⅳ Python類中self的作用
舉例如下:嫌談
其中,self是對於對象自身基碼的引用。
在這里,self 改變了變數的作用域。
不加 self 的變數是局部變數,作用域是當前函數;加了 self 的變數是實例變數,作用域是當前實例。
也就是,我們在外部將類 Person 實例化時,可以調用它的 inputname 變數,因為這個變數是實例變數,作用域當前實例,卻調用不了 input1 變數,因為這個變數是局部變數,只能在setName 函數中使用。
我們這里假設 lil = Person(),其中 lil 是 Person 類的一個實例。
當我們調用 lil 的 setName 和 getName 或 greet 方法時,lil 自動將自己作為第一個參數,傳入函數中,因此形象的稱為 self
所以 self 是一個實例,指的實例本身。
通過使用 self,我們可以在其成員方法中訪問他們要對其特性進行操作的對象本身了。
這樣說很拗口,換句話說,我們通過使用 self,將 attribute 的作用域從當前函數 變成 當前實例,這樣這個 attribute 就可以在整個實例中都有效。這樣便於我們在不同的成員方法中對這個 attribute 進行操作。例如上面例子中的 self.name ,因為使用了 self,我們在 getName 和 greet 中均可以使用該實例變數。
而且,對於實例 lil,我們也可以直接調用 name 這個attribute,也就是 lil.name ,是有效的。但是 lil.input1 是無效的,會提芹鋒碰示「類裡面沒有這個屬性」。
Ⅵ python中的self
首先,對於python,只有針對類來說的self才有意義,所以python中的self,說的即是python類中的self。
以下我將結合python類的相關概念敘述,必須明確的是,self只能用在python類的方法(即函數)中。
在我看來,python的類有三個相關概念:屬性(即變數)、方法(即函數)、繼承。
1.屬性(即變數)
(1)如果變數定義在類下面而不是類的方法下面,那這個變數既是類的屬性也是類實例的屬性。
(2)如果變數定義在類的方法下面,如果加了self,那這個變數就是類實例的屬性,不是類的屬性;如果沒有加self,這個變數只是這個方法的局部變數,既不是類的屬性也不是類實例的屬性。
2.方法(即函數)
(1)如果在類中定義函數時加了self,那這個函數是類實例的方法,而不是類的方法。
(2)如果在類中定義函數時候沒有加self,那這個函數就只是類的方法,而不是類實例的方法。
3.繼承
通俗的講,子類繼承父類,也就是子類繼承了父類的屬性和方法,相當於把父類的屬性和方法的定義直接加到子類里來,這個時候以子類為主。
說明 :以上闡述是基於我個人的理解用最直觀的語言進行的總結,如果有錯誤歡迎提出