Python基礎---面向物件
阿新 • • 發佈:2018-12-12
物件和類的關係:懶得說,Java中接觸的頭疼
定義類:
class 類名:
屬性列表
方法列表
建立物件:
物件名 = 類名()
屬性:私有化在屬性前加 __ ==java 的 private
方法:定義關鍵字 def
注意:類定義的方法至少有一個引數,一般以self變數作為該引數,且作為第一個引數
對比java中 this 理解
構造器
構造器"方法,的格式如下: === java 的 構造方法
def __init__( 引數s):
建立物件後,主動呼叫
析構
建立物件時,預設呼叫構造方法
刪除物件時,預設呼叫析構方法
析構方法(__del__())
class Animal(): # 構造方法 def __init__(self): print ('---構造方法被呼叫---') # 析構方法 def __del__(self): print ('---析構方法被呼叫---') # 建立物件 dog = Animal() # 刪除物件 del dog
繼承 不多說了
class 子類(父類):
多繼承 一個子類還幾個父類 有點亂吧 java只有單繼承
# 定義一個父類
class A:
def printA(self):
print '----A----'
# 定義一個父類
class B:
def printB(self):
print '----B----'
# 定義一個子類,繼承自A、B
class C(A,B):
def printC(self):
print '----C----'
obj_C = C()
obj_C.printA()
obj_C.printB()
父類中有同名的方法,按照繼承順序執行
多型 定義時的型別和執行時的型別不一樣
一般是 引數型別,引數個數
類方法和靜態方法:
1.類方法:類物件所擁有的方法,需要用修飾器@classmethod來標識
操作類物件=== Java generator setter and getter
X.第一個引數必須是類物件,一般以cls作為第一個引數
X.類方法可以對類屬性進行修改
class people:
country = 'china'
#類方法,用classmethod來進行修飾
@classmethod
def getCountry(cls):
return cls.country
@classmethod
def setCountry(cls,country):
cls.country = country
p = people()
print (p.getCountry() )#可以用過例項物件引用
print (people.getCountry()) #可以通過類物件引用
p.setCountry('japan')
print (p.getCountry() )
print (people.getCountry())
2.靜態方法:需要修飾器@staticmethod來進行修飾,靜態方法不需要多定義引數
class people:
country = 'china'
@staticmethod
#靜態方法
def getCountry():
return people.country
print (people.getCountry())