Python筆記 五 類

2021-10-09 21:29:36 字數 4971 閱讀 5879

1.

# 根據類來建立物件被稱為 例項化

class dog(): # 根據約定,在python中,首字母大寫的名稱指的是類。

# 每當使用dog類建立例項的時候,python都會自動執行__init__方法

def __init__(self, name, age):

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

self.name = name

self.age = age

def sit(self):

"""模擬小狗被命令時蹲下"""

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

def roll_over(self):

"""模擬小狗被命令時打滾"""

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

my_dog = dog('willie', 6) # 建立例項

print(my_dog.name) # 訪問屬性

my_dog.sit() # 呼叫方法

my_dog.roll_over()

2.

class car():

def __init__(self, make, model, year):

"""初始化描述汽車的屬性"""

self.make = make

self.model = model

self.year = year

self.odometer_reading = 0 # 屬性可以設定預設值

def get_descriptive_name(self):

"""返回整潔的描述性資訊"""

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

return long_name.title()

def read_odometer(self):

"""列印一條指出汽車里程的訊息"""

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

def update_odometer(self, mileage):

"""將里程表讀數設定為指定的值"""

self.odometer_reading = mileage

my_new_car = car('audi', 'a4', 2016)

print(my_new_car.get_descriptive_name())

my_new_car.read_odometer()

my_new_car.odometer_reading = 23 # 直接修改屬性的值

my_new_car.read_odometer()

my_new_car.update_odometer(24) # 通過方法修改屬性的值

3.繼承和重寫

對於父類的方法,只要它不符合子類模擬的實物的行為,都可對其進行重寫。為此,可在子類中定義乙個這樣的方法,即它與要重寫的父類方法同名。這樣,python將不會考慮這個父類方法,而只關注你在子類中定義的相應方法。

class car():

def __init__(self, make, model, year):

"""初始化描述汽車的屬性"""

self.make = make

self.model = model

self.year = year

self.odometer_reading = 0 # 屬性可以設定預設值

def get_descriptive_name(self):

"""返回整潔的描述性資訊"""

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

return long_name.title()

def read_odometer(self):

"""列印一條指出汽車里程的訊息"""

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

def update_odometer(self, mileage):

"""將里程表讀數設定為指定的值"""

self.odometer_reading = mileage

def fill_gas_tank(self):

print("有油")

my_new_car = car('audi', 'a4', 2016)

print(my_new_car.get_descriptive_name())

my_new_car.read_odometer()

my_new_car.odometer_reading = 23 # 直接修改屬性的值

my_new_car.read_odometer()

my_new_car.update_odometer(24) # 通過方法修改屬性的值

my_new_car.read_odometer()

class electriccar(car): # 在括號內指定父類的名稱

"""電動汽車的獨特之處"""

def __init__(self, make, model, year):

"""初始化父類的屬性"""

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

self.battery_size = 70 # 新建子類的屬性

def describe_battery(self): # 子類的方法

"""列印一條描述電瓶容量的訊息"""

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

def fill_gas_tank(self): # 重寫油箱

print("有電")

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

print(my_tesla.get_descriptive_name())

my_tesla.describe_battery()

my_tesla.fill_gas_tank()

4.將例項用作屬性

class car():

def __init__(self, make, model, year):

"""初始化描述汽車的屬性"""

self.make = make

self.model = model

self.year = year

self.odometer_reading = 0 # 屬性可以設定預設值

def get_descriptive_name(self):

"""返回整潔的描述性資訊"""

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

return long_name.title()

def read_odometer(self):

"""列印一條指出汽車里程的訊息"""

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

def update_odometer(self, mileage):

"""將里程表讀數設定為指定的值"""

self.odometer_reading = mileage

def fill_gas_tank(self):

print("有油")

class battery():

"""一次模擬電動汽車電瓶的簡單嘗試"""

def __init__(self, battery_size=70):

"""初始化電瓶的屬性"""

self.battery_size = battery_size

def describe_battery(self):

"""列印一條描述電瓶容量的訊息"""

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

class electriccar(car): # 在括號內指定父類的名稱

"""電動汽車的獨特之處"""

def __init__(self, make, model, year):

"""初始化父類的屬性"""

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

self.battery_size = 70 # 新建子類的屬性

self.battery = battery() # 將例項用作屬性

def describe_battery(self): # 子類的方法

"""列印一條描述電瓶容量的訊息"""

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

def fill_gas_tank(self): # 重寫油箱

print("有電")

5.駝峰命名法:capitalizedwords將類名中的每個單詞的首字母都大寫,而不使用下劃線。例項名和模組名都採用小寫格式,並在單詞之間加上下劃線。

注意:當在首字母大寫的風格中用到縮寫時,所有縮寫的字母用大寫,因此,httpservererror 比 httpservererror 好。

python學習筆記(五) 類

python中根據約定,首字母大寫的名稱指的是類。引數self必不可少且必須位於其他形參的前面。因為python呼叫 init 方法建立dog例項時,將自動傳入實參self。它是乙個指向例項本身的引用,讓例項能夠訪問類中的屬性和方法。例1 建立dog類,class dog def init self...

python學習筆記(五)

python裡的流程控制語句 if expression statements s else statements s identationerror 縮排錯誤,縮排4個空格 true 非空的值 string,tuple,list,set,dict false 0,null,其他空值 需要多次判斷使...

python 學習筆記 (五)

遞迴函式,如果乙個函式在內部呼叫自身本身,這個函式就是遞迴函式。該包下的iterable方法是用來判斷物件是否可以迭代 from collections import iterable 遞迴算階乘 def fact n if n 1 return 1 return n fact n 1 print ...