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

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程语言 > python >内容正文

python

python类的继承与多态_python类的继承和多态

發布時間:2024/9/27 python 25 豆豆
生活随笔 收集整理的這篇文章主要介紹了 python类的继承与多态_python类的继承和多态 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

現在屬于是老年人的腦子,東西寫著寫著就忘了,東西記著記著就不知道了。之前學C++的時候就把類、對象這塊弄得亂七八糟,現在是因為很想玩python,所以就看看python的類和對象。

就像說的,類有三個特征:封裝、繼承、多態。

1、封裝:類封裝了一些方法,可通過一定的規則約定方法進行訪問權限。

C++中的成員變量有public、private、ptotected。

在python中,默認的成員變量都是public的,如果成員變量前面是加兩個下劃線,表示該成員變量是私有的。并且private類不能被繼承類引用,并且不允許直接訪問。

2、繼承:在定義一個類的時候可以從當前有的類中進行繼承。

python是允許多繼承的,并且在子類中擁有父類所有的成員變量和方法,為了緩解代碼中的冗余,子類在父類的基礎上增加的成員變量可以如下修改。

class Person(object):

def __init__(self,name,sex):

self.name = name

self.sex = sex

class Child(Person): # Child 繼承 Person

def __init__(self,name,sex,mother,father):

Person.__init__(self,name,sex) # 子類對父類的構造方法的調用

self.mother = mother

self.father = father

May = Child("May","female","April","June")

print(May.name,May.sex,May.mother,May.father)

3、多態:當子類繼承父類之后,成員方法既可以重寫也可以不重寫。當調用的時候只要保證新方法編寫正確,不用管原來的代碼。

對擴展開放(Open for extension):允許子類重寫方法函數

對修改封閉(Closed for modification):不重寫,直接繼承父類方法函數

python是一種動態語言,動態語言是在運行的時候確定數據類型的語言。變量在使用前不用聲明,通常變量的類型是被復制的那個值的類型。

靜態語言是在編譯的時候變量的數據類型即可確定的語言,多數靜態類型語言要求在使用變量之前鼻血聲明數據類型。

在類中,當要對成員變量進行約束的時候可以使用@property,python內置的@property裝飾器是負責把一個方法變成屬性調用

在實例屬性操作的時候,就知道該屬性很可能不是直接暴露的,而是通過getter和setter方法來實現的。還可以定義只讀屬性,只定義getter方法不定義setter就是一個只讀屬性

請利用@property給一個Screen對象加上width和height屬性,以及一個只讀屬性resolution:

class Screen(object) :

@property

def width(self) :

return self._width

@width.setter

def width(self,valuer) :

if not isinstance(valuer,int):

raise ValueError('score must be an integer')

if valuer < 0 :

raise ValueError('score must over zero')

self._width=valuer

@property

def height(self) :

return self._height

@height.setter

def height(self,number) :

if not isinstance(number,int) :

raise ValueError('score must be an integer')

if number < 0 :

raise ValueError('score must be an zero')

self._height = number

@property

def resolution(self):

return self._width * self._height

s=Screen()

s.width = 1024

s.height = 768

print(s.resolution)

總結

以上是生活随笔為你收集整理的python类的继承与多态_python类的继承和多态的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。