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

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

如何在數(shù)據(jù)類中聲明變量

如何在數(shù)據(jù)類中聲明變量

人到中年有點(diǎn)甜 2022-01-18 21:01:11
我試圖在dataclass(y_set_max和y_set_min) 中聲明兩個變量。下面是我的代碼:from dataclasses import dataclass@dataclassclass Ymax_ymin: #has to be object inside the brackets    y_default_max: int #500    y_default_min: int #0    current: int    recommended: int    def __post_init__(self):          self.y_set_max = max(y_default_max,current,recommended)          self.y_set_min = min(y_default_min,current,recommended)current = 800recommended = 650set_axis = Ymax_ymin(500,0,current,recommended)print(set_axis.y_set_max)print(set_axis.y_set_min)這是拋出錯誤: NameError: name y_default_maxis not defined如何修改我的dataclass代碼以便返回兩個打印語句?
查看完整描述

2 回答

?
嗶嗶one

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

如果要訪問實例的屬性,則需要在調(diào)用中包含該實例。雖然dataclass定義向您隱藏了構(gòu)造函數(shù),其中y_default_max傳入的 被讀入self.y_default_max,但它仍然會發(fā)生,如果您想要實例屬性,則需要包含self..


此外,如果您想dataclass根據(jù)其他人計算一個 ' 屬性,您可以使用init=False它來聲明它并仍然獲得類型提示等:


from dataclasses import dataclass, field



@dataclass

class YmaxYmin:

    current: int

    recommended: int

    y_default_max: int = 500

    y_default_min: int = 0

    y_set_max: int = field(init=False)

    y_set_min: int = field(init=False)


    def __post_init__(self):

        self.y_set_max = max(self.y_default_max, self.current, self.recommended)

        self.y_set_min = min(self.y_default_min, self.current, self.recommended)

鑒于此類定義,您的初始語句將正常運(yùn)行:


set_axis = YmaxYmin(current=500, recommended=0, y_default_max=800, y_default_min=650)


print(set_axis.y_set_max)  # prints 800

print(set_axis.y_set_min)  # prints 0


查看完整回答
反對 回復(fù) 2022-01-18
?
慕斯709654

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

語法與類型提示和默認(rèn)參數(shù)相同:


from dataclasses import dataclass


@dataclass

class Ymax_ymin: #has to be object inside the brackets

    current: int

    recommended: int

    y_default_max: int = 500

    y_default_min: int = 0


    def __post_init__(self):

        self.y_set_max = max(self.y_default_max, current, recommended)

        self.y_set_min = min(self.y_default_min, current, recommended)


current = 800

recommended = 650


set_axis = Ymax_ymin(500, 0, current, recommended)


print(set_axis.y_set_max)

print(set_axis.y_set_min)

請注意,默認(rèn)參數(shù)必須放在最后。另外,你self在__post_init__.


查看完整回答
反對 回復(fù) 2022-01-18
  • 2 回答
  • 0 關(guān)注
  • 193 瀏覽
慕課專欄
更多

添加回答

舉報

0/150
提交
取消
微信客服

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

幫助反饋 APP下載

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

公眾號

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