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

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

為什么打印后對象在python中以十六進(jìn)制顯示?

為什么打印后對象在python中以十六進(jìn)制顯示?

莫回?zé)o 2022-11-01 16:54:10
例 1。class alpha:    passa1=alpha()print(a1)# output:<__main__.alpha object at 0x0000023CEFB9D040> 我想知道為什么對象值是十六進(jìn)制值?無論如何轉(zhuǎn)換為可理解的格式?
查看完整描述

4 回答

?
萬千封印

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

默認(rèn)情況下,一個(gè)類沒有任何邏輯以可讀的方式“表示”自己。當(dāng)打印函數(shù)無法找到將對象轉(zhuǎn)換為字符串的方法時(shí),它將返回對象的內(nèi)存信息。


如果您想要一個(gè)更具可讀性的輸出,您必須自己定義該行為。


我們以這三個(gè)類為例:


class Test:

    def __init__(self, name):

        self.name = name


class Test2(Test):

    def __str__(self):

        return self.name


class Test3(Test):

    def __repr__(self):

        return self.name

Test是原始類。Test2并Test3從 繼承結(jié)構(gòu)Test。


我們可以使用不同的類定義變量并嘗試在列表中打印它們,然后分別:


var1 = Test("Abraham")

var2 = Test2("Silvia")

var3 = Test3("Charles")


var_list = [var1, var2, var3]

print(var_list) # [<__main__.Test object at 0x02BBA118>, <__main__.Test2 object at 0x02BBA370>, Charles]


print(var1) # <__main__.Test object at 0x02BBA118>

print(var2) # Silvia

print(var3) # Charles

看到列表中唯一正確表示的是var3,但是當(dāng)我們將它們打印出來時(shí),兩者都var2返回var3了它們的屬性name。


那是因?yàn)楫?dāng)在 say a 中表示變量時(shí),list或者dict解釋器嘗試調(diào)用 objectsself.__repr__方法來查看如何表示它們。


但是,當(dāng)嘗試將對象轉(zhuǎn)換為字符串時(shí)(正如 print 嘗試做的那樣),兩者都self.__str__按self.__repr__順序被調(diào)用。這就是為什么兩者都var2可以var3正確打印出來的原因。


查看完整回答
反對 回復(fù) 2022-11-01
?
偶然的你

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

有多種原因:

  1. 內(nèi)存通常是一個(gè)非常大的數(shù)字,是 2 的冪。因此,十六進(jìn)制表示用于壓縮非常大的整數(shù)。

  2. 十六進(jìn)制值與二進(jìn)制值和具有以下冪的數(shù)字非常相關(guān)

你可以在這里詳細(xì)說明。為什么計(jì)算機(jī)使用十六進(jìn)制表示地址


查看完整回答
反對 回復(fù) 2022-11-01
?
慕村225694

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

您正在打印一個(gè)沒有__str__功能的對象。正如Ganesh Saptue所說,這是對象的默認(rèn)輸出。



查看完整回答
反對 回復(fù) 2022-11-01
?
浮云間

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

print函數(shù)最終需要一個(gè)字符串來寫入您的屏幕。它盡最大努力將各種數(shù)據(jù)類型轉(zhuǎn)換為良好的字符串表示形式,但對于您的類來說,它真的不可能知道使用什么是好的字符串。所以,最后的手段就是你所看到的:關(guān)于對象的一些細(xì)節(jié),以及它在內(nèi)存中的當(dāng)前位置(顯示為十六進(jìn)制地址)。



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

添加回答

舉報(bào)

0/150
提交
取消
微信客服

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

幫助反饋 APP下載

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

公眾號

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