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 ...