python學習筆記(五) 類

2021-10-24 10:20:37 字數 2927 閱讀 2290

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

例1

#建立dog類,

class dog():

def __init__(self,name,age):   #__init__()下劃線是雙份的......

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

self.name = name  #以self為字首的變數都可供類中的所有方法使用

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's name is " + my_dog.name.title() +".")

print("my dog is " + str(my_dog.age) + " yesrs old.")

my_dog.sit()

my_dog.roll_over()

例2

#使用類和例項

#car類

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")

#增加修改odometer的方法

def update_odometer(self,mileage):

if mileage > self.odometer_reading:

self.odometer_reading = mileage

else:

print("you can't roll back an odometer")        

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

print(my_new_car.get_descriptive_name())

my_new_car.read_odometer()

#直接修改屬性的值

my_new_car.odometer_reading = 60

my_new_car.read_odometer()

#通過方法修改屬性的值

my_new_car.update_odometer(80)

my_new_car.read_odometer()

繼承

乙個類繼承另乙個類的時候,它將自動獲取另乙個類的所有屬性和方法,原有類稱為父類,新的類稱為子類。

例1

#電動汽車類,electriccar類繼承car類

class electriccar(car):  #定義子類時,括號內必須包含父類的名稱

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

super(). __init__(make,model,year)  #super()是乙個特殊的函式,將父類和子類關聯起來

self.battery_size = 70

def describe_battery(self):

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

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

print(my_tesla.get_descriptive_name())

my_tesla.describe_battery()

#將例項用作屬性

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 electirccar2(car):

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

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

self.battery = battery()

my_tesla2 = electirccar2('tesla','model s','2020')

print(my_tesla2.get_descriptive_name())

my_tesla2.battery.describe_battery()

Python筆記 五 類

1.根據類來建立物件被稱為 例項化 class dog 根據約定,在python中,首字母大寫的名稱指的是類。每當使用dog類建立例項的時候,python都會自動執行 init 方法 def init self,name,age 初始化屬性name和age self.name name self.a...

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