第七色在线视频,2021少妇久久久久久久久久,亚洲欧洲精品成人久久av18,亚洲国产精品特色大片观看完整版,孙宇晨将参加特朗普的晚宴

章節(jié)
問答
課簽
筆記
評論
占位
占位

Python實例屬性的初始化

通過前面的方式定義一個實例的屬性非常方便,但也有一些問題。
首先,如果定義屬性的過程中使用了不同的屬性名字,比如性別,前者使用了
sex,后者使用了gender,那對于一個類的不同實例,存儲一個信息就用了兩個不同的屬性,在后面將會難以維護。
其次,名字、性別、年齡等等,都是人的基本信息,在抽象一個類的時候,理應(yīng)包含這些信息。
在定義 Person 類時,可以為Person類添加一個特殊的__init__()方法,當(dāng)創(chuàng)建實例時,__init__()方法被自動調(diào)用,我們就能在此為每個實例都統(tǒng)一加上以下屬性:

class Person(object):
    def __init__(self, name, sex, age):
        self.name = name
        self.sex = sex
        self.age = age

需要注意的是,__init__() 方法的第一個參數(shù)必須是 self(也可以用別的名字,但建議使用習(xí)慣用法),后續(xù)參數(shù)則可以自由指定,和定義函數(shù)沒有任何區(qū)別。
定義類后,就可以相應(yīng)的實例化對象了,需要注意的是,在實例化的時候,需要提供除
self以外的所有參數(shù)。

xiaoming = Person('Xiao Ming', 'boy', 13)
xiaohong = Person('Xiao Hong', 'girl', 14)

而訪問這些屬性的方式和之前的一樣:

print(xiaohong.name)
print(xiaohong.sex)
print(xiaohong.age)
# 但當(dāng)訪問不存在的屬性時,依然會報錯
print(xiaohong.birth)

要特別注意的是,初學(xué)者定義__init__()方法常常忘記了 self 參數(shù),比如如下的定義:

class Person(object):
    def __init__(name, sex, age):
        pass

這種情況下,如果還是如下實例化,將會報錯。

xiaoming = Person('Xiao Ming', 'boy', 13)
xiaohong = Person('Xiao Hong', 'girl', 14)

Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
TypeError: __init__() takes 3 positional arguments but 4 were given

任務(wù)

請定義一個動物類,抽象出名字、年齡兩個屬性,并實例化兩個實例dog, cat。

?不會了怎么辦

參考答案:

class Animal(object):
    def __init__(self, name, age):
        self.name = name
        self.age = age

dog = Animal('wangwang', 1)
cat = Animal('mimi', 3)
print(dog.name)
print(dog.age)
print(cat.name)
print(cat.age)
||

提問題

寫筆記

公開筆記
提交
||

請驗證,完成請求

由于請求次數(shù)過多,請先驗證,完成再次請求

加群二維碼

打開微信掃碼自動綁定

您還未綁定服務(wù)號

綁定后可得到

  • · 粉絲專屬優(yōu)惠福利
  • · 大咖直播交流干貨
  • · 課程更新,問題答復(fù)提醒
  • · 賬號支付安全提醒

收藏課程后,能更快找到我哦~

使用 Ctrl+D 可將課程添加到書簽

邀請您關(guān)注公眾號
關(guān)注后,及時獲悉本課程動態(tài)

舉報

0/150
提交
取消
全部 精華 我要發(fā)布
全部 我要發(fā)布
最熱 最新
只看我的

手記推薦

更多

本次提問將花費2個積分

你的積分不足,無法發(fā)表

為什么扣積分?

本次提問將花費2個積分

繼續(xù)發(fā)表請點擊 "確定"

為什么扣積分?