日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

关于魔法方法的一点总结

發布時間:2025/4/16 编程问答 18 豆豆
生活随笔 收集整理的這篇文章主要介紹了 关于魔法方法的一点总结 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

如果按以下方式重寫魔法方法 _init_,結果會怎樣?

class Myclass:def __init__(self):return "I love you"

會報錯,因為init 特殊方法不應當返回除了 None 以外的任何對象。


假設已經有鳥類的定義,現在我要定義企鵝類繼承于鳥類,但我們都知道企鵝是不會飛的,我們應該如何屏蔽父類(鳥類)中飛的方法?

用子類覆蓋掉父類的方法就行了

class Bird:def fly(self):print("fly away")class Penguin(Bird):def fly(self):pass

寫一個 FileObject 類,給文件對象進行包裝,從而確認在刪除對象時文件能自動關閉

class FileObject:def __init__(self, filename):self.new_file = open(filename, 'r')def __del__(self):self.new_file.close()del self.new_file

對文件進行包裝從而確定在刪除時文件可以自動關閉。


按照以下要求,定義一個類實現攝氏度到華氏度的轉換(轉換公式:華氏度 = 攝氏度*1.8+32)

希望可以盡可能簡化的形式輸出,有如下輸出格式

>>> print(C2F(32))89.6

為了盡量簡練地實現功能,我們采取了“偷龍轉鳳”的小技巧。在類進行初始化之前,通過“掉包” tem 參數,讓實例對象直接返回計算后的結果。

class C2F(float):def __new__(cls, tem=0.0):return float.__new__(cls, tem*1.8+32)

定義一個類繼承于 int 類型,并實現一個特殊功能:當傳入的參數是字符串的時候,返回該字符串中所有字符的 ASCII 碼的和(使用 ord() 獲得一個字符的 ASCII 碼值)。

class Nint(int):def __new__(cls, arg = 0):if isinstance(arg, str):total = 0for each in arg:total += ord(each)arg = totalreturn int.__new__(cls, arg)

結果:

>>> print(Nint('A'))65

總結

以上是生活随笔為你收集整理的关于魔法方法的一点总结的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。