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

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

Python變量聲明

Python變量聲明

慕的地6264312 2019-08-12 10:47:21
Python變量聲明學(xué)習(xí)python,并有一些基本的疑慮。我看過變量聲明(路徑在這里)class writer:     path = ""有時,沒有明確的聲明,但初始化__init__。def __init__(self, name):     self.name = name我理解的目的__init__,但是建議在任何其他函數(shù)中聲明變量。2.如何創(chuàng)建變量來保存自定義類型?class writer:     path = "" # string value     customObj = ??
查看完整描述

3 回答

?
一只萌萌小番薯

TA貢獻(xiàn)1795條經(jīng)驗 獲得超7個贊

沒有必要在Python中聲明新變量。如果我們在談?wù)摵瘮?shù)或模塊中的變量,則不需要聲明。只需為您需要的名稱指定一個值:mymagic = "Magic"。Python中的變量可以包含任何類型的值,但您不能限制它。

您的問題特別詢問了類,對象和實例變量。創(chuàng)建實例變量的慣用方法是在__init__方法中而不是其他地方 - 雖然您可以在其他方法中創(chuàng)建新的實例變量,或者甚至在不相關(guān)的代碼中,但這只是一個壞主意。它會使你的代碼難以推理或維護(hù)。

例如:

class Thing(object):

    def __init__(self, magic):
        self.magic = magic

簡單?,F(xiàn)在這個類的實例有一個magic屬性:

thingo = Thing("More magic")# thingo.magic is now "More magic"

在類的名稱空間中創(chuàng)建變量本身會導(dǎo)致不同的行為。它在功能上有所不同,只有在您有特定原因時才應(yīng)該這樣做。例如:

class Thing(object):

    magic = "Magic"

    def __init__(self):
        pass

現(xiàn)在嘗試:

thingo = Thing()Thing.magic = 1# thingo.magic is now 1

要么:

class Thing(object):

    magic = ["More", "magic"]

    def __init__(self):
        passthing1 = Thing()thing2 = Thing()thing1.magic.append("here")# thing1.magic AND thing2.magic is now ["More", "magic", "here"]

這是因為類本身的名稱空間與從其創(chuàng)建的對象的名稱空間不同。我會留給你研究一下。

帶回家的消息是,慣用的Python是(a)初始化__init__方法中的對象屬性,(b)根據(jù)需要記錄類的行為。你不需要為你所寫的所有東西都找到完整的Sphinx級文檔的麻煩,但至少有一些關(guān)于你或其他人可能需要提取它的細(xì)節(jié)的評論。


查看完整回答
反對 回復(fù) 2019-08-12
?
精慕HU

TA貢獻(xiàn)1845條經(jīng)驗 獲得超8個贊

這可能晚了6年,但在Python 3.5及更高版本中,您聲明了一個這樣的變量類型:

variable_name: type_name

或這個:

variable_name # type: shinyType

所以在你的情況下(如果你CustomObject定義了一個類),你可以這樣做:

customObj: CustomObject


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

添加回答

舉報

0/150
提交
取消
微信客服

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

幫助反饋 APP下載

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

公眾號

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