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

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

使用父類的裝飾器方法轉(zhuǎn)換類方法

使用父類的裝飾器方法轉(zhuǎn)換類方法

眼眸繁星 2023-07-27 16:21:59
def greeting_decorator(original_function):    def return_function(*args):        name = 'John'        return f'Hi, I\'m {name}, fullname: {original_function(*args)}'    return return_function@greeting_decoratordef greeting(name, surname):    return f'{name} {surname}'print(greeting('John', 'Doe'))上面,我有一個簡單的裝飾器函數(shù),可以按預(yù)期工作。我想做類似的事情,但是使用繼承的類。我該如何繼承這樣的裝飾器函數(shù):class Guy:    def __init__(self, name):        self.name = 'John'    def greeting_decorator(self, original_function):        def return_function(*args):            return f'Hi, I\'m {self.name}, fullname: {original_function(*args)}'        return return_functionclass GuyWithSurname(Guy):    def __init__(self, name, surname):        super().__init__(name)        self.surname = surname    @greeting_decorator # <----- here    def __str__(self):        return f'{self.name} {self.surname}'    JohnDoe = GuyWithSurname('John', 'Doe')print(JohnDoe)
查看完整描述

1 回答

?
慕哥6287543

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

如果您確定父類始終是Guy,您可以簡單地通過以下方式進(jìn)行注釋@Guy.greeting_decorator:


class Guy:


    def __init__(self, name):

        self.name = 'John'


    def greeting_decorator(original_function):

        def return_function(self, *args):

            return f'Hi, I\'m {self.name}, fullname: {original_function(self, *args)}'

        return return_function


class GuyWithSurname(Guy):


    def __init__(self, name, surname):

        super().__init__(name)

        self.surname = surname


    @Guy.greeting_decorator # <----- here

    def __str__(self):

        return f'{self.name} {self.surname}'


JohnDoe = GuyWithSurname('John', 'Doe')

這樣,當(dāng)你調(diào)用print(JohnDoe)它時就會輸出Hi, I'm John, fullname: John Doe.


請注意,我必須更改greeting_decorator和return_function參數(shù)才能正確處理self.


查看完整回答
反對 回復(fù) 2023-07-27
  • 1 回答
  • 0 關(guān)注
  • 107 瀏覽
慕課專欄
更多

添加回答

舉報

0/150
提交
取消
微信客服

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

幫助反饋 APP下載

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

公眾號

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