日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當(dāng)前位置: 首頁 > 编程语言 > python >内容正文

python

Python 创建和使用类

發(fā)布時間:2023/12/10 python 30 豆豆
生活随笔 收集整理的這篇文章主要介紹了 Python 创建和使用类 小編覺得挺不錯的,現(xiàn)在分享給大家,幫大家做個參考.

python創(chuàng)建和使用類的方法如下

# class Dog(): # def __init__(self,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's name is "+my_dog.name.title()+".") # #print("My dog is "+str(my_dog.age)+"years old.") # my_dog.sit() # my_dog.roll_over()

1、方法__init__() 是一個特殊的方法,包含三個形參:self 、name 和age?。在這個方法的定義中,形參self 必不可少,還必須位于其他形參的前面。因為Python調(diào)用這個__init__() 方法來創(chuàng)建Dog 實例時,將自動傳入實參self 。每個與類相關(guān)聯(lián)的方法調(diào)用都自動傳遞實參self ,它是一個指向?qū)嵗旧?的引用,讓實例能夠訪問類中的屬性和方法。我的理解self這個形參是必不可少的,因為在類中定義方法的時候一定會有self這個形參。然后看下面這段代碼

# class Dog(): # def __init__(self,name,age): # self.name=name # self.age=age

我理解是name和age都是類Dog中的屬性,這是對類中的屬性進行初始化,因為類中的每個屬性必須有初始值。同時記住以self 為前綴的變量都可供類中的所有方法使用,上面代碼中的函數(shù)定義,函數(shù)只有一個self參數(shù),但是函數(shù)體中可以使用 age,name這些屬性。

?

在根據(jù)類創(chuàng)建實例的時候,比如

my_dog = Dog('willie', 6)

此時的self這個參數(shù)會默認(rèn)自動傳遞,因此我們要傳遞的只是后面的兩個參數(shù)。實例化結(jié)束后,我們可以通過Dog的實例來使用類中定義的函數(shù)或者直接訪問類中有的屬性。

?

?

?

?

__init__方法是對類的屬性進行初始化,因此在該方法中要傳遞屬性的初始值作為參數(shù),當(dāng)然你也可以直接對某個屬性直接進行初始化,這樣的話就不用在 __init__方法中提供這個屬性的形參了; class Car():def __init__(self,make,model,year):self.make=makeself.model=modelself.year=yearself.odometer_reading=0def get_descriptive_name(self):long_name = str(self.year) + ' ' + self.make + ' ' + self.modelreturn long_name.title()def read_odometer(self):print("This car has "+str(self.odometer_reading)+" niles on it.")

這里的self.odometer_reading=0直接初始化為0,因此不必在 _init_方法中為該屬性提供形參作為默認(rèn)的初始值。

?

還有,如果每次需要改變屬性的值時都要在實例化時作更改,豈不是很麻煩?

所有有以下幾種方式修改屬性值。

1. 直接修改屬性的值比如上面的odometer_reading = 0,可以這樣修改??my_new_car.odometer_reading = 23

2.通過方法來修改

def update_odometer(self, mileage): """將里程表讀數(shù)設(shè)置為指定的值""" self.odometer_reading = mileage

在類中定義一個方法專門來修修改屬性的,如果需要更變屬性的時候,直接調(diào)用該方法即可。

不過那些屬性初始值是在_init_方法中的參數(shù)的,并不能通過以上的方式來修改(只能在初始化實例的時候傳參修改?)

能操作的只是那些個沒在在類的 _init_函數(shù)參數(shù)中有初始值的屬性。也就是上面的??self.odometer_reading=0? 這個屬性是能被修改的,其他的 model,make,year 這這些屬性只能在實例化類的時候在參數(shù)中修改

應(yīng)該只 這樣子的

??

?

轉(zhuǎn)載于:https://www.cnblogs.com/Guhongying/p/10011185.html

總結(jié)

以上是生活随笔為你收集整理的Python 创建和使用类的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網(wǎng)站內(nèi)容還不錯,歡迎將生活随笔推薦給好友。