亚洲激情专区-91九色丨porny丨老师-久久久久久久女国产乱让韩-国产精品午夜小视频观看

溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

怎么定義Python面向對象

發布時間:2021-11-20 15:29:57 來源:億速云 閱讀:101 作者:iii 欄目:編程語言

本篇內容介紹了“怎么定義Python面向對象”的有關知識,在實際案例的操作過程中,不少人都會遇到這樣的困境,接下來就讓小編帶領大家學習一下如何處理這些情況吧!希望大家仔細閱讀,能夠學有所成!

面向對象

  • 類 - class

  • 對象

class Student(): #定義一個類
 name = '' #定義變量
 age = 0
 def print_file(self): #定義一個方法
 print("name:"+self.name)
 print('age:'+str(self.age)) #輸出
student =Student() #實例化一個對象
student.print_file() #調用方法

【注】:self 在每個方法括號中都必須寫上,這個相當于java中的 this 關鍵字。

但 self按嚴格來說它不是python的關鍵字,self可以是任何符合的字符串,只是python官方推薦使用 self 而已

類與對象:類像一個模板一樣,可以產生各種各樣的對象

  • 構造函數

 def __init__(self,name): #構造函數
 self.name=name
 self.source= 0
 print(name) #調用實例變量 方式1
 print(self.name) #調用實例變量 方式2
 print(self.__class__.name)#調用類變量 方式1

部分特性和java差不多

類變量和實例變量

實例變量:通過實例對象調用的變量和在構造函數中定義過的 如上述構造函數類代碼

print(name) #調用實例變量 方式1
print(self.name) #調用實例變量 方式2

類變量:通過類名直接調用的,或者在實例函數中使用 self.class.變量名調用的 如上述代碼

print(self.__class__.name) #調用類變量 方式1
Student.name #調用類變量 方式2

方法

實例方法

就是一般的定義方法,關聯實例對象

def show(self):
	pass

【注】:關鍵字 pass 相當于一個占位 在還沒想好邏輯的時候可以使用它 反正代碼報錯

類方法

方法上使用裝飾器 @classmethod 以及必傳參數 cls

#類方法
@classmethod 
def plus_sum(cls):
 cls.sum +=1 
 print(cls.sum) #調用類變量

【注】: cls 字符串 和self的作用差不多,只是只能用在類方法上

在類方法中調用類變量的方式與實例方法不同

self.__calss__.name #實例方法調用類變量
cls.name #類方法調用類變量

靜態方法

方法上使用裝飾器 @staticmethod,和類方法的區別就是不用傳cls,一般不推薦使用

 #靜態方法
 @staticmethod 
 def plus_sum():
 pass

要點:一般保證數據的安全不能直接給數據賦值,要在方法中進行完成,方法中可以進行判斷,體現了python的面向對象的封裝性

私有

私有方法

在方法前面加 ‘__’ 雙下劃線

def __sum(self):
	pass

私有方法外部強行調用會報錯

私有變量

在變量前面加 ‘__’ 雙下劃線

__name = '小米'

無法進行私有變量調用,

student = Student() #實例化
print(student.__name)

因為python的動態機制,這里其實是重新定義了一個變量 __name

可以使用 _dict _ 來查看當前對象的所以變量信息

print(student.__dict__) #輸出詳細

可以從輸出的內容中可以看到,原來的變量變成了 類名加變量名 如:_Student__name

面向對象-繼承

python的繼承特性和java的繼承特性差不多,相信有java繼承的會更好的理解

父類

#父類 2019-8-28
class Human():
 sum = 0
 def __init__(self,name,age):
 self.name=name
 self.age=age
 def show(self):
 print("父類的方法")

子類

from m4 import Human #導入父類 m4為文件名 Human為類名
class Student(Human): #繼承父類
 
 def __init__(self,school,name,age):
 self.school=school
 
 #調用父類的構造函數 需要加入self 方式一
 Human.__init__(self,name,age)
 #方式二 使用super關鍵字
 super(Student,self).__init__(name,age)
 
 def out(self):
 #調用父類方法
 super(Student,self).show()
 print("加油")
ss = Student('社會','44',5)
print(ss.name)
print(ss.age)
ss.out()

調用父類的兩種方式

方式一

 #調用父類的構造函數 需要加入self 方式一
 Human.__init__(self,name,age)

方式二

使用關鍵字 super

#方式二 使用super關鍵字
super(Student,self).__init__(name,age)

“怎么定義Python面向對象”的內容就介紹到這里了,感謝大家的閱讀。如果想了解更多行業相關的知識可以關注億速云網站,小編將為大家輸出更多高質量的實用文章!

向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

铅山县| 乳源| 博爱县| 黄浦区| 武城县| 双流县| 西乌珠穆沁旗| 株洲市| 鹰潭市| 河池市| 辽宁省| 华安县| 醴陵市| 富阳市| 阿巴嘎旗| 桐梓县| 浦县| 横山县| 张掖市| 阿勒泰市| 祁连县| 庐江县| 吴堡县| 万山特区| 汪清县| 眉山市| 宝鸡市| 东兴市| 兰州市| 益阳市| 栾川县| 大关县| 高州市| 静宁县| 佛教| 平谷区| 长海县| 贵定县| 紫阳县| 浦县| 怀化市|