您好,登錄后才能下訂單哦!
本篇文章為大家展示了Python中class和對象基本用法是什么,內容簡明扼要并且容易理解,絕對能使你眼前一亮,通過這篇文章的詳細介紹希望你能有所收獲。
主要介紹了Python 面向對象之類class和對象基本用法,結合實例形式詳細分析了Python面向對象程序設計中類class和對象基本概念、原理、使用方法與操作注意事項,需要的朋友可以參考下。
類(class):定義一件事物的抽象特點,usually,類定義了事物的屬性和它可以做到的性為對象(object):是類的實例。
1.基本點
< code class="prism language-bash">class MyClass(object):
message = "hello,world"
def show(self):
print (self.message)
< /code>
類名為MyClass 有一個成員變量:message,并賦予初值。
類中定義了成員函數show(self),注意類中的成員函數必須帶有參數self。
參數self是對象本身的引用,在成員函數中可以引用self參數獲得對象的信息。
輸出結果:
< code class="prism language-bash">inst = Myclass() # 實例化一個MyClass 的對象
inst.show # 調用成員函數,無需傳入self參數
hello,world
< /code>
注: 通過在類名后面加小括號可以直接實例化類來獲得對象變量,使用對象變量可以訪問類的成員函數與成員變量。
2.構造函數
構造函數是一種特殊的類成員方法,主要用來創建對象初始化,python 中的類構造函數用__init__命名:
< code class="prism language-bash">class MyClass(object):
message = 'Hello, Developer.'
def show(self):
print self.message
def __init__(self):
print "Constructor is called"
inst = MyClass()
inst.show()
>>>
< /code>
打印結果:
< code class="prism language-bash">>>>Constructor is called
>>>Hello, Developer.
< /code>
注:構造函數不能有返回值,python 中不能定義多個構造函數,但可以通過為命名參數提供默認值的方式達到用多種方式構造對象的目的。
3.析構函數
是構造的反向函數,在銷毀或者釋放對象時調用他們。
python 中為類定義析構函數的方法在類定義中定義一個名為__del__的沒有返回值和參數的函數。
< code class="prism language-bash">class MyClass(object):
message = 'Hello, Developer.'
def show(self):
print self.message
def __init__(self, name = "unset", color = "black"):
print "Constructor is called with params: ",name, " ", color
def __del__(self):
print "Destructor is called!"
inst = MyClass()
inst.show()
inst2 = MyClass("David")
inst2.show()
del inst, inst2
inst3 = MyClass("Lisa", "Yellow")
inst3.show()
del inst3
>>>
< /code>
4.實例成員變量
構造函數中定義self引用的變量,因此這樣的成員變量在python中叫做實例成員變量。
< code class="prism language-bash">def __init__(self, name = "unset", color = "black"):
print "Constructor is called with params: ",name, " ", color
self.name = name
self.color = color
< /code>
5.靜態函數和類函數:
python 支持兩種基于類名訪問成員的函數:靜態函數,類函數。
區別在于:類函數有一個隱形參數cls可以用來獲取類信息。而靜態函數沒有該函數。
靜態函數用裝飾器:@staticmethod定義
類函數使用裝飾器:@classmethod定義
< code class="prism language-bash">class MyClass(object):
message = 'Hello, Developer.'
def show(self):
print (self.message)
print ("Here is %s in %s!" % (self.name, self.color))
@staticmethod
def printMessage():
print ("printMessage is called")
print (MyClass.message)
@classmethod
def createObj(cls, name, color):
print ("Object will be created: %s(%s, %s)"% (cls.__name__, name, color))
return cls(name, color)
def __init__(self, name = "unset", color = "black"):
print ("Constructor is called with params: ",name, " ", color)
self.name = name
self.color = color
def __del__(self):
print ("Destructor is called for %s!"% self.name)
MyClass.printMessage()
inst = MyClass.createObj( "Toby", "Red")
print (inst.message)
del inst
< /code>
6.私有成員
python 使用指定變量名格式的方法定義私有成員,即所有以雙下劃線“__”開始命名的成員都為私有成員。
< code class="prism language-bash">class MyClass(object):
def __init__(self, name = "unset", color = "black"):
print "Constructor is called with params: ",name, " ", color
self.__name = name
self.__color = color
def __del__(self):
print "Destructor is called for %s!"% self.__name
inst = MyClass("Jojo", "White")
del inst
< /code>
上述內容就是Python中class和對象基本用法是什么,你們學到知識或技能了嗎?如果還想學到更多技能或者豐富自己的知識儲備,歡迎關注億速云行業資訊頻道。
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。