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

歡迎訪問 生活随笔!

生活随笔

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

python

python实例化对象是什么意思_请帮我理解python对象的实例化.

發布時間:2023/12/4 python 41 豆豆
生活随笔 收集整理的這篇文章主要介紹了 python实例化对象是什么意思_请帮我理解python对象的实例化. 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

我不是程序員,我正在嘗試學習python.但我對對象實例化有點困惑.我認為Class就像模板一樣,對象是基于模板制作(或實例化).這是否意味著一旦創建了對象(例如,classinst1 = MyClass()),模板中的更改不應該影響對象中的內容?

此外,下面的代碼顯示我可以更改類變量“common”,但前提是我沒有為對象中的“common”變量賦值.如果我在我的對象中指定一個新值“common”(比如classinst1.common = 99),那么更改我的類變量“common”不再影響classinst.common值????

有人可以為我澄清為什么下面的代碼表現如此?它是所有OO語言的共同點,還是python的一個古怪方面?

===============

>>> class MyClass(object):

... common = 10

... def __init__(self):

... self.myvar=3

... def myfunction(self,arg1,arg2):

... return self.myvar

...

>>> classinst1 = MyClass()

>>> classinst1.myfunction(1,2)

3

>>> classinst2 = MyClass()

>>> classinst2.common

10

>>> classinst1.common

10

>>> MyClass.common = 50

>>> classinst1.common

50

>>> classinst2.common

50

>>> classinst1.common = 99

>>> classinst2.common

50

>>> classinst1.common

99

>>> MyClass.common = 7000

>>> classinst1.common

99

>>> classinst2.common

7000

解決方法:

您有類聲明和實例化的一般概念.但是你的例子中的輸出似乎沒有意義的原因是實際上有兩個變量叫做common.第一個是在類聲明中聲明并在代碼頂部實例化的類變量.這是大多數示例中唯一常見的.

執行此行時:

classinst1.common = 99

您正在創建一個對象變量,classinst1的成員.由于它與類變量具有相同的名稱,因此它會隱藏或隱藏MyClass.common.對classinst1.common的所有進一步引用現在引用該對象變量,而對classinst2.common的所有引用繼續回退到MyClass.common,因為沒有名為common的對象變量是classinst2的成員.

所以當你執行:

MyClass.common = 7000

這會更改MyClass.common但classinst1.common仍然等于99.在您的示例的最后幾行中,當您向解釋器詢問classinst1.common和classinst2.common的值時,前者指的是classinst1對象成員變量常見的后者引用類變量MyClass.common.

標簽:python,instantiation

來源: https://codeday.me/bug/20190612/1228849.html

總結

以上是生活随笔為你收集整理的python实例化对象是什么意思_请帮我理解python对象的实例化.的全部內容,希望文章能夠幫你解決所遇到的問題。

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