Python的__new__用法

用__new__ 主要是想改變原來一些類無法實現的方法,比如有個列表,我想讓它按照我的想要的方式轉換成字符串,那麼就可以這樣寫


class ListToString(str):
    def __new__(cls, fruit_list):
        fruit_string = ', '.join(fruit_list)

        return super(ListToString, cls).__new__(cls, fruit_string)

if __name__ == '__main__':
    fruit_list = ['apple', 'banana', 'orange', 'blueberry', 'watermelon']

    print ListToString(fruit_list)

apple, banana, orange, blueberry, watermelon

那麼這時候打印出來的就是個字符串了。
用__new__ 是來創建類的實例,必須又返回的東西
而__init__則是實例的構造函數,只是對實例進行一些操作。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章