class
student
(object):
# __slots__ = ('name','age','city') 這個屬性直接定義在類裡,是乙個元組,用來規定物件可以存在的屬性
# def __new__(cls, *args, **kwargs):
def__init__
(self,x,y)
: self.name = x
self.age = y
defsay_hello
(self)
:print
(,self.name)
"""物件就是記憶體空間的乙個位址
1.呼叫了 __new__ 方法,用來申請記憶體空間
2.呼叫了 __init__ 方法傳入引數,將self指向建立好的記憶體空間,填充資料
3.變數s1也指向建立好的記憶體空間
誰呼叫方法self就是指的誰
當前呼叫方法的物件
"""s1 = student(
'張三',18
)print
('s1的名字是:'
,s1.name)
s2 = student(
'jack',21
)s2.say_hello(
)#s2呼叫say_hello(),say_hello()裡的self就是s2
s1.say_hello(
)#s1呼叫say_hello(),say_hello()裡的self就是s1
#print(s.hight) 沒有屬性會報錯
s1.city =
'上海'
#如果這個屬性以前不存在,會給物件新增乙個新的屬性
#如果這個屬性以前存在,會修改這個屬性對應的值
print
(s1.city)
結果
s1的名字是: 張三
上海process finished with exit code 0
Python中關於 self 的種種用法筆記
給物件增加屬性 先來看個例子 class cat def eat self print s 愛吃魚 self.name 在 python 中,要 給物件設定屬性,非常的容易,但是不推薦使用 tom.name tom lazy cat.name 大懶貓 使用self在方法內部輸出每乙隻貓的名字 由 哪...
Python要self的理由
python的類的方法和普通的函式有乙個很明顯的區別,在類的方法必須有個額外的第乙個引數 self 但在呼叫這個方法的時候不必為這個引數賦值 顯勝於隱 的引發 python的類的方法的這個特別的引數指代的是物件本身,而按照python的慣例,它用self來表示。當然我們也可以用其他任何名稱來代替,只...
Python要self的理由
接觸python以來,看到類裡的函式要帶個self引數,一直搞不懂啥麻子原因。晚上特別針對python的self查了一下,理理。python的類的方法和普通的函式有乙個很明顯的區別,在類的方法必須有個額外的第乙個引數 self 但在呼叫這個方法的時候不必為這個引數賦值 顯勝於隱 的引發 python...