關於python 學習 七

2021-09-29 14:32:07 字數 3252 閱讀 2646

建立類

class

dog():

"""一次模擬小狗的簡單嘗試"""

def__init__

(self, name, age)

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

self.name = name

self.age = age

defsit(self)

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

print

(self.name.title()+

" is now sitting."

)def

roll_over

(self)

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

print

(self.name.title()+

" rolled over!"

)

使用類

my_dog = dog(

'willie',6

)your_dog = dog(

'lucy',3

)print

("my dog's name is "

+ my_dog.name.title()+

".")

print

("my dog is "

+str

(my_dog.age)

+" years old."

)my_dog.sit(

)print

("\nyour dog's name is "

+ your_dog.name.title()+

".")

print

("your dog is "

+str

(your_dog.age)

+" years old."

)your_dog.sit(

)#執行

my dog's name is willie.

my dog is

6 years old.

willie is now sitting.

your dog's name is lucy.

your dog is

3 years old.

lucy is now sitting.

法__init__() 定義成了包含三個形參:self 、name 和age 。在這個方法的定義中,形參self 必不可少,還必須位於其他形參的前面。為何必須在方法定義中包 含形參self 呢?因為python呼叫這個__init__() 方法來建立dog 例項時,將自動傳入實參self 。每個與類相關聯的方法呼叫都自動傳遞實參self ,它是乙個指向例項本身 的引用,讓例項能夠訪問類中的屬性和方法。我們建立dog 例項時,python將呼叫dog 類的方法__init__() 。

我們將通過實參向dog() 傳遞名字和年齡;self 會自動傳遞,因此我們不需要傳遞它。每當我們根據dog 類建立例項時,都只需給最後兩個形參(name 和age )提供值。

類中的每個屬性都必須有初始值,哪怕這個值是0或空字串。在有些情況下,如設定預設值時,在方法__init__() 內指定這種初始值是可行的;如果你對某個屬性這樣做 了,就無需包含為它提供初始值的形參。

class

car():

def__init__

(self, make, model, year)

: self.make = make

self.model = model

self.year = year

self.odometer_reading =

0def

get_descriptive_name

(self)

:print

(self.make)

defread_odometer

(self)

:print

("this car has "

+str

(self.odometer_reading)

+" miles on it."

)my_new_car = car(

'audi'

,'a4'

,2016

)print

(my_new_car.get_descriptive_name())

my_new_car.read_odometer(

)

定義了乙個名為battery 的新類,它沒有繼承任何類

方法__init__() 除self 外,還有另乙個形參battery_size 。這個形參是可選的:如果沒有給 它提供值,電瓶容量將被設定為70。方法describe_battery() 也移到了這個類中

在electriccar 類中,我們新增了乙個名為self.battery 的屬性()

這行**讓python建立乙個新的battery 例項(由於沒有指定尺寸,因此為預設值70 ),並將 該例項儲存在屬性self.battery 中。每當方法__init__() 被呼叫時,都將執行該操作;因此現在每個electriccar 例項都包含乙個自動建立的battery 例項。

import car

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

:def

__init__

(self, make, model, year)

:super()

.__init__(make, model, year)

self.battery = battery(

)my_tesla = electriccar(

'tesla'

,'model s'

,2016

)my_tesla.get_descriptive_name(

)my_tesla.battery.describe_battery(

)

python爬蟲學習(七)

from selenium.webdriver.common.keys import keys browser webdriver.chrome browser.get 1 在搜尋框中輸入 selenium browser.find element by id kw send keys 趙麗穎 2 ...

Python學習筆記(七)

深淺拷貝 set 集合 函式a 1,2 3,4 b a.copy print b 結果 1,2 3,4 b 0 0 8 print a 結果 8,2 3,4 print b 結果 8,2 3,4 原理圖 去重關係測試 定義語法 s set in not in 集合等價與不等價 子集 s set al...

python學習筆記(七)

帶有 yield 關鍵字的的函式在 python 中被稱之為 generator 生成器 python 直譯器會將帶有 yield 關鍵字的函式視為乙個 generator 來處理。乙個函式或者子程式都只能 return 一次,但是乙個生成器能暫停執行並返回乙個中間的結果 這就是 yield 語句的...