當前位置:首頁 » 編程語言 » python類實例化

python類實例化

發布時間: 2022-11-12 09:04:43

1. python中的類為什麼要實例化為一個對象才能使用

打個比方:
class 人類(object):
def __init__(self,性別,年齡,姓名等等):
self.性別=性別
self.年齡=年齡
self.姓名=姓名

def 說話(self,要說的話):
print(要說的話)
......
小明=人類(男,3歲,小明)
小明.說話('你好!')

類就好比是一類事物的抽象,是一個模板,擁有這一類事物的屬性和功能。但是對於「人類」這個類來說,每個人的屬性和要做的事又是不一樣的,所以需要實例化,實例對象就是「人類」這個類的具體對象,後續就通過「小明」這個實例對象進行操作。😂

2. python對象和實例化的區別

對類實例化的結果就是產生一個該類的對象
實例化是action
對象是value
class MyException(Exception):
pass
class ValidationError(Exception):
def __init__(self, message, errors):
# Call the base class constructor with the parameters it needs
super(ValidationError, self).__init__(message)
# Now for your custom code...
self.errors = errors

3. 為什麼python在類的實例化的時候會自動調用析構函數

在該對象不在使用的時候自動調用,怎麼說呢,就是沒有引用指向該對象的時候。

4. python 怎麼判斷一個類是否被實例化,能給出代碼學習下嗎,謝謝!

這個類似於單例模式吧

print '----------------------方法1--------------------------'
#方法1,實現__new__方法
#並在將一個類的實例綁定到類變數_instance上,
#如果cls._instance為None說明該類還沒有實例化過,實例化該類,並返回
#如果cls._instance不為None,直接返回cls._instance
class Singleton(object):
def __new__(cls, *args, **kw):
if not hasattr(cls, '_instance'):
orig = super(Singleton, cls)
cls._instance = orig.__new__(cls, *args, **kw)
return cls._instance

class MyClass(Singleton):
a = 1

one = MyClass()
two = MyClass()

two.a = 3
print one.a
#3
#one和two完全相同,可以用id(), ==, is檢測
print id(one)
#29097904
print id(two)
#29097904
print one == two
#True
print one is two
#True

5. python之面向對象

面向對象(OOP)是一種對現實世界理解和抽象的方法,對象的含義是指在現實生活中的具體事物, 一切皆對象 ,Python 是一門面向對象的語言,面向對象編程簡單來說就是一種 封裝代碼 的方式。

Python 中類的定義使用 class 關鍵字定義類,語法如下所示:

舉例,定義一個類 Cat

構造方法 init() 會在類實例化時自動調用。無論構造方法還是其他方法都需要將 self 作為第一個參數,它代表類的實例。

類創建好後,可以直接通過類名訪問屬性,格式為: 類名.屬性名 ,比如我們訪問 Cat 類的 color 屬性,如下所示:

創建對象也稱類的實例化,比如我們通過 Cat 類創建對象,如下所示:

創建好對象後,使用它訪問屬性和調用方法了,如下所示:

內部私有屬性和方法是可以被訪問和調用的。

我們來一起看個例子,如下所示:

輸出結果:

Python 支持類的繼承,而且支持多繼承,語法格式為:

示例如下所示:

如果繼承的父類方法不能滿足我們的需求,這時子類可以 重寫 父類方法,如下所示:

6. Python小白請假下關於類實例化的問題

class Turtle:
def init(self,x):
self.num = x
class Fish:
def init(self,x):
self.num = x
class Pool:
def init(self,x,y):
self.turtle = Turtle(x)
self.fish = Fish(y)
def print_num(self):
print ("本池塘共有%d只烏龜,有%d條魚",(self.turtle.num,self.fish.num))

運行和報錯:
pool=Pool(1,10)
Traceback (most recent call last):
File "", line 1, in
pool=Pool(1,10)
TypeError: Pool() takes no arguments
pool=Pool()
pool.print_num()
Traceback (most recent call last):
File "", line 1, in
pool.print_num()
File "C:\Users\Administrator\AppData\Local\Programs\Python\Python37-32\complexDemo.py", line 17, in print_num
print ("本池塘有%d只烏龜,有%d條魚",(self.turtle.num,self.fish.num))
AttributeError: 'Pool' object has no attribute 'turtle'

7. python程序中怎樣區分類的實例化和函數調用

如果單純從命 名看:

1、類使是用的大駝峰,所以類是這樣的:Document()
2、函數名:全部小寫

8. Python的類和對象入門

本文來說說Python中的類與對象,Python這門語言是無處不對象,如果你曾淺要了解過Python,你應該聽過Python是一種面向對象編程的語言,所以你經常可能會看到面向「對象」編程這類段子,而面向對象編程的語言都會有三大特徵:封裝、繼承、多態。

我們平時接觸到的很多函數、方法的操作都具有這些性質,我們只是會用,但還沒有去深入了解它的本質,下面就介紹一下關於類和對象的相關知識。

封裝這個概念應該並不陌生,比如我們把一些數據封裝成一個列表,這就屬於數據封裝,我們也可以將一些代碼語句封裝成一個函數方便調用,這就是代碼的封裝,我們也可以將數據和代碼封裝在一起。用術語表示的話,就是可以將屬性和方法進行封裝,從而得到對象。

首先我們可以定義一個類,這個類中有屬性和方法,但有的夥伴會比較好奇,屬性和方法不是會封裝成對象嘛,為什麼又變成類了?舉個例子,類就好比是一個毛坯房,而對象是在毛坯房的基礎上改造成的精裝房。

在類定義完成時就創建了一個類對象,它是對類定義創建的命名空間進行了一個包裝。類對象支持兩種操作:屬性引用和實例化。

屬性引用的語法就是一般的標准語法:obj.name。比如XiaoMing.height和XiaoMing.run就是屬性引用,前者會返回一條數據,而後者會返回一個方法對象。

這里也支持對類屬性進行賦值操作,比如為類中的weight屬性賦予一個新值。

而類的實例化可以將類對象看作成一個無參函數的賦值給一個局部變數,如下:

ming就是由類對象實例化後創建的一個實例對象,通過實例對象也可以調用類中的屬性和方法。

類在實例化過程中並不都是像上面例子一樣簡單的,一般類都會傾向將實例對象創建為有初始狀態的,所以在類中可能會定義一個__init__的魔法方法,這個方法就可以幫助接收、傳入參數。

而一個類如果定義了__init__方法,那麼在類對象實例化的過程中就會自動為新創建的實例化對象調用__init__方法,請看下面這個例子。

可以看到在__init__()中傳入了參數x和y,然後在print_coor中需要接收參數x和y,接下來通過實例化這個類對象,驗證一下參數是否能通過__init__()傳遞到類的實例化操作中。

所謂繼承就是一個新類在另一個類的基礎上構建而成,這個新類被稱作子類或者派生類,而另一個類被稱作父類、基類或者超類,而子類會繼承父類中已有的一些屬性和方法。

比如上面這個例子,我並沒有將list_定義成一個列表,但它卻能調用append方法。原因是類Mylist繼承於list這個基類,而list_又是Mylist的一個實例化對象,所以list_也會擁有父類list擁有的方法。當然可以通過自定義類的形式實現兩個類之間的繼承關系,我們定義Parent和Child兩個類,Child中沒有任何屬性和方法,只是繼承於父類Parent。

當子類中定義了與父類中同名的方法或者屬性,則會自動覆蓋父類對應的方法或屬性,還是用上面這個例子實現一下,方便理解。

可以看到子類Child中多了一個和父類Parent同名的方法,再實例化子類並調用這個方法時,最後調用的是子類中的方法。Python中繼承也允許多重繼承,也就是說一個子類可以繼承多個父類中的屬性和方法,但是這類操作會導致代碼混亂,所以大多數情況下不推薦使用,這里就不過多介紹了。

多態比較簡單,比如定義兩個類,這兩個類沒有任何關系,只是兩個類中有同名的方法,而當兩個類的實例對象分別調用這個方法時,不同類的實例對象調用的方法也是不同的。

上面這兩個類中都有introce方法,我們可以實例化一下兩個類,利用實例對象調用這個方法實現一下多態。

判斷一個類是否是另一個類的子類,如果是則返回True,反之則返回False。

需要注意的有兩點:

判斷一個對象是否為一個類的實例對象,如果是則返回True,反之則返回False。

需要注意的有兩點:

判斷一個實例對象中是否包含一個屬性,如果是則返回True,反之則返回False。

需要注意的是第二個參數name必須為字元串形式傳入,如果不是則會返回False。

9. python定義一個Dog類,實例化兩個小狗對象。類屬性有名字,顏色,體重。實現以下描述

程序寫給你

classdogClass():

def__init__(self,name,color,weight):

self.name=name

self.color=color

self.weight=weight


def__del__(self):

self.name=""

self.color=""

self.weight=""


defname(self):

returnself.name


defcolor(self):

returnself.color


defweight(self):

returnself.weight


a=dogClass("旺財","棕色","5斤")


b=dogClass("來福","黑色","8斤")

print("小狗名字叫",a.name,",顏色是",a.color,",體重",a.weight)


print("小狗名字叫",b.name,",顏色是",b.color,",體重",b.weight)


執行結果:

10. python 類當函數如何實例化

可以把類當做參數傳入到函數里,在函數里進行實例化。如下所示。

把類A當做參數傳入get_instance_from_class。在get_instance_from_class中對A進行實例化,獲得其實例,並返回。


classA:
def__init__(self):
print"IamaAinstance."
defprint_myself(self):
print"printmyself."
defmain():
defget_instance_from_class(a):
returna()
a=get_instance_from_class(A)
a.print_myself()

if__name__=="__main__":
main()
熱點內容
j2ee和java的區別 發布:2025-01-12 03:42:44 瀏覽:581
android6小米 發布:2025-01-12 03:38:35 瀏覽:85
redis與資料庫 發布:2025-01-12 03:20:21 瀏覽:211
怎麼升級安卓100 發布:2025-01-12 03:19:37 瀏覽:516
c語言倒數 發布:2025-01-12 03:14:37 瀏覽:929
如何免費激活行動電話卡安卓 發布:2025-01-12 03:10:27 瀏覽:89
2020凱越精英配置什麼樣 發布:2025-01-12 03:08:02 瀏覽:685
奧特曼空想特攝要怎麼樣的配置 發布:2025-01-12 03:08:01 瀏覽:998
空氣能的壓縮機 發布:2025-01-12 03:05:55 瀏覽:480
java字元串圖片 發布:2025-01-12 03:04:31 瀏覽:341