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

為了賬號(hào)安全,請(qǐng)及時(shí)綁定郵箱和手機(jī)立即綁定
已解決430363個(gè)問題,去搜搜看,總會(huì)有你想問的

您可以對(duì)內(nèi)置類進(jìn)行猴子修補(bǔ)嗎?如果不能,我如何重載運(yùn)算符來定義兩個(gè)不同類的加法?

您可以對(duì)內(nèi)置類進(jìn)行猴子修補(bǔ)嗎?如果不能,我如何重載運(yùn)算符來定義兩個(gè)不同類的加法?

慕萊塢森 2023-08-22 18:25:28
首先,這不是一個(gè)如何獲得特定結(jié)果的問題,而是一個(gè)關(guān)于 Python 內(nèi)部工作原理的問題。我對(duì)編程還很陌生,所以請(qǐng)告訴我是否使用了任何錯(cuò)誤的術(shù)語。我的假設(shè)圍繞著一個(gè)相當(dāng)基本的錯(cuò)誤。我嘗試運(yùn)行:"My age is " + 46顯然,這會(huì)出現(xiàn)“無法將 'int' 對(duì)象隱式轉(zhuǎn)換為 str”錯(cuò)誤。沒有將字符串添加到整數(shù)的定義,但我可以創(chuàng)建一個(gè)嗎?我的第一個(gè)問題是這對(duì)于字符串和整數(shù)等內(nèi)置類是否可行。我環(huán)顧四周,并不認(rèn)為是這樣,但如果有人知道一種方法,我會(huì)很感興趣。我的第二個(gè)問題是,如果我定義兩個(gè)新類,它們?cè)诟鞣矫娑急憩F(xiàn)得像字符串和整數(shù),但不是內(nèi)置的,我可以定義這兩個(gè)類的加法嗎?我知道我可以定義同一個(gè)類的添加,但是兩個(gè)不同的類呢?最后,加法(無論是直接字符串和整數(shù)還是字符串和整數(shù)這樣的兩個(gè)類)應(yīng)該通過在相加之前將整數(shù)轉(zhuǎn)換為字符串來生成:“我的年齡是 46”。提前致謝!
查看完整描述

2 回答

?
偶然的你

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

至于你的第一個(gè)問題:改變內(nèi)置類基本上是不可能的。雖然你可能會(huì)干擾其他類,但這通常是一個(gè)糟糕的主意。相反,您可以創(chuàng)建一個(gè)具有所需屬性的子類。


例如:


class mystr(str):

    def __add__(self, other):

       return mystr(str(self) + str(other))

此代碼繼承了該類的所有屬性str,除了我們要更改的屬性(即其添加行為)。通過強(qiáng)制轉(zhuǎn)換self,str我們?nèi)匀晃?tostr的添加,但我們還將其他參數(shù)強(qiáng)制轉(zhuǎn)換為str以獲得您所描述的行為。


最后,我們返回到,mystr這樣我們就不會(huì)得到str.


現(xiàn)在我們可以執(zhí)行以下操作:


>>> some_string = mystr("abc")

>>> some_string + 4

"abc4"


查看完整回答
反對(duì) 回復(fù) 2023-08-22
?
隔江千里

TA貢獻(xiàn)1906條經(jīng)驗(yàn) 獲得超10個(gè)贊

你可以這樣做:


class stringclass:

    def __init__(self, mystring):

        stringclass.mystring = mystring

    def add(self, number):

        stringclass.mystring = stringclass.mystring + repr(number)

然后:


myobject = stringclass("My age is ")

“添加”號(hào)碼:


myobject.add(46)

然后檢查對(duì)象:


print(myobject.mystring)

這會(huì)給你:


My age is 46

(不過,我根本不知道這有什么用處。)


查看完整回答
反對(duì) 回復(fù) 2023-08-22
  • 2 回答
  • 0 關(guān)注
  • 167 瀏覽
慕課專欄
更多

添加回答

舉報(bào)

0/150
提交
取消
微信客服

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

幫助反饋 APP下載

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

公眾號(hào)

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