第七色在线视频,2021少妇久久久久久久久久,亚洲欧洲精品成人久久av18,亚洲国产精品特色大片观看完整版,孙宇晨将参加特朗普的晚宴

為了賬號安全,請及時綁定郵箱和手機(jī)立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

_()內(nèi)部和外部變量之間的差異

_()內(nèi)部和外部變量之間的差異

狐的傳說 2019-07-26 15:14:09
_()內(nèi)部和外部變量之間的差異除了名字以外,這些類之間有什么區(qū)別嗎?class WithClass ():     def __init__(self):         self.value = "Bob"     def my_func(self):         print(self.value)class WithoutClass ():     value = "Bob"     def my_func(self):         print(self.value)如果我使用或不使用__init__方法來聲明變量。value?我主要擔(dān)心的是,我會以一種方式使用它,而這會給我?guī)砀嗟膯栴}。
查看完整描述

3 回答

?
翻過高山走不出你

TA貢獻(xiàn)1875條經(jīng)驗(yàn) 獲得超3個贊

外部變量集__init__屬于這個班。它們被所有的實(shí)例所共享。

內(nèi)部創(chuàng)建變量__init__(和所有其他方法函數(shù))并以self.屬于對象實(shí)例。


查看完整回答
反對 回復(fù) 2019-07-27
?
開心每一天1111

TA貢獻(xiàn)1836條經(jīng)驗(yàn) 獲得超13個贊

無我

創(chuàng)建一些對象:

class foo(object):
    x = 'original class'c1, c2 = foo(), foo()

我可以更改c1實(shí)例,它不會影響c2實(shí)例:

c1.x = 'changed instance'c2.x>>> 'original class'

但是,如果我更改foo類,那么該類的所有實(shí)例也將被更改:

foo.x = 'changed class'c2.x>>> 'changed class'

這里請注意Python作用域是如何工作的:

c1.x>>> 'changed instance'

帶著自己

更改類不影響實(shí)例:

class foo(object):
    def __init__(self):
        self.x = 'original self'c1 = foo()foo.x = 'changed class'c1.x>>> 'original self'



查看完整回答
反對 回復(fù) 2019-07-27
?
蝴蝶不菲

TA貢獻(xiàn)1810條經(jīng)驗(yàn) 獲得超4個贊

我想在我在這個帖子中讀到的回復(fù)中添加一些內(nèi)容這條線(指這個)。

免責(zé)聲明:這句話來自我所做的實(shí)驗(yàn)。

外部變量__init__:

這些其實(shí)是,靜態(tài)類變量因此,對類的所有實(shí)例都是可訪問的。

內(nèi)部變量__init__:

這些的價值實(shí)例變量只能訪問手頭的實(shí)例(通過self參考)

我的貢獻(xiàn):

程序員在使用靜態(tài)類變量是他們可以被實(shí)例變量(如果您正在訪問靜態(tài)類變量穿過self參考資料)。

解釋:

以前,我認(rèn)為兩種聲明變量的方法完全相同(愚蠢的我),部分原因是我可以通過self推薦信?,F(xiàn)在,當(dāng)我遇到麻煩時,我研究了這個話題,并把它弄清楚了。

訪問問題靜態(tài)類變量穿過self引用是它只引用靜態(tài)類變量如果沒有實(shí)例變量使用相同的名稱,更糟糕的是,嘗試重新定義靜態(tài)類變量穿過self引用不起作用,因?yàn)?/trans>實(shí)例變量創(chuàng)建,然后將以前可訪問的陰影隱藏起來。靜態(tài)類變量.

為了解決這個問題,你應(yīng)該經(jīng)常參考靜態(tài)類變量通過全班的名字。

例:

#!/usr/bin/env pythonclass Foo:
    static_var = 'every instance has access'

    def __init__(self,name):
        self.instance_var = 'I am %s' % name    def printAll(self):
        print 'self.instance_var = %s' % self.instance_var        print 'self.static_var = %s' % self.static_var        print 'Foo.static_var = %s' % Foo.static_var

f1 = Foo('f1')f1.printAll()f1.static_var = 'Shadowing static_var'f1.printAll()f2 = Foo('f2')f2.printAll()Foo.static_var = 'modified class'f1.printAll()f2.printAll()

輸出量:

self.instance_var = I am f1
self.static_var = every instance has accessFoo.static_var = every instance has access
self.instance_var = I am f1
self.static_var = Shadowing static_varFoo.static_var = every instance has access
self.instance_var = I am f2
self.static_var = every instance has accessFoo.static_var = every instance has access
self.instance_var = I am f1
self.static_var = Shadowing static_varFoo.static_var = modified classself.instance_var = I am f2
self.static_var = modified classFoo.static_var = modified class

我希望這對某人有幫助




查看完整回答
反對 回復(fù) 2019-07-27
  • 3 回答
  • 0 關(guān)注
  • 344 瀏覽
慕課專欄
更多

添加回答

舉報(bào)

0/150
提交
取消
微信客服

購課補(bǔ)貼
聯(lián)系客服咨詢優(yōu)惠詳情

幫助反饋 APP下載

慕課網(wǎng)APP
您的移動學(xué)習(xí)伙伴

公眾號

掃描二維碼
關(guān)注慕課網(wǎng)微信公眾號