Head First Python 讀書筆記(六)

2021-09-10 02:24:52 字數 3157 閱讀 3131

class

dog():

"""建立了狗類"""

def__init__

(self, name:str, age:int) -> none:

'''初始化屬性name和age'''

self.name = name

self.age = age

defsit(self) -> none:

'''模擬小狗蹲下'''

print(self.name.title()+' is now sitting.')

defroll_over

(self) -> none:

'''模擬小狗打滾'''

print(self.name.title()+' rolled over!')

taidi = dog('taidi', 2) # 物件例項化

print(taidi.sit())

方法__init__()方法是共享的,屬性不共享

類中的方法由同乙個類建立的所有例項物件所共享,類中的屬性不會由同乙個類建立的其他物件所共享

>>> type(d) # 物件的型別

'__main__.dog'>

>>> id(d) # 物件在記憶體中的位址

92579984

>>> hex(id(d)) # 位址轉為十六進製制數

'0x584a890'

class

car():

def__init__

(self, make, model, year):

self.make = make

self.model = model

self.year = year

self.odometer = 0

defget_descriptive_name

(self):

long_name = str(self.year)+' '+self.make+' '+self.model

return long_name.title()

defread_odometer

(self):

print("this car has "+str(self.odometer)+" miles on it.")

defupdate_odometer

(self, mileage):

if mileage >= self.odometer:

self.odometer = mileage

else:

print('you can`t roll back an odometer!')

defincrement_odometer

(self, miles):

self.odometer += miles

deffill_gas_tank

(self):

print('this car has fill gas tank!')

# 電動汽車 繼承 汽車類

class

electriccar

(car):

def__init__

(self, make, model, year):

super().__init__(make, model, year)

self.battery_size = 70

# 定義了屬於子類的方法和屬性

defdescribe_battery

(self):

print("this car has a "+str(self.battery_size) + '-kwh battery.')

deffill_gas_tank

(self):

print('this car doesn`t need a gas tank')

my_tesla = electriccar('tesla', 'model s', 2016)

print(my_tesla.get_descriptive_name())

# 子類中傳入父類作為引數,並且需要呼叫 super 方法去為父類初始化值

class

electriccar

(car):

def__init__

(self, make, model, year):

super().__init__(make, model, year)

class

battery

():def

__init__

(self, battery_size=70):

self.battery_size = battery_size

defdescribe_battery

(self):

print('this car has a '+str(self.battery_size)+'-kwh battery.')

class

electriccar

(car):

def__init__

(self, make, model, year):

self.battery_size = battery() # 類的例項物件作為子類例項屬性,預設值為70

super().__init__(make, model, year)

deffill_gas_tank

(self):

print('this car doesn`t need a gas tank')

my_tesla = electriccar('tesla', 'model s', 2016)

my_tesla.battery_size.describe_battery() # 子類的例項物件的屬性去呼叫battery的方法

posted @

2018-07-16 13:04

newman·li 閱讀(

...)

編輯收藏

Head First Python(定製資料物件)

新的檔案格式 sarah sweeney,2002 6 17,2 58,2.58,2 39,2 25,2 55,2 54,2.18,2 55,2 55,2 22,2 21,2.22 如果使用split bif把資料抽取到乙個列表,第乙個資料項是名字,然後是出生日期,然後是計時資料。sarah get...

Head First Python 讀書筆記

idle整合開發環境 in 操作符 檢查乙個物件是否在另乙個物件中 不用大括號分開,靠縮排 區分 作為乙個 塊,有 的地方,必須縮排 迭代處理乙個物件序列的三種典型方法 序列是乙個有序的物件集合 for迴圈 知道迴圈次數 迴圈數字列表,迭代變數 x 指的是被迭代物件中的item for x in 1...

HeadFirstPython 資料持久化

usr bin env python coding utf 8 這一章主要是講如何將資料進行持久化。使用pickle對資料進行醃製。在對資料進行醃製之前,我們需要對資料進行格式化 針對資料 取出我們想要的資料。在中間的知識點是 檔案開啟與關閉,以及其異常處理。我用的是python2.7 在某些語法上...