SORU
11 NİSAN 2009, CUMARTESİ


Nasıl Python fonksiyonu dekoratörler zinciri yapabilir miyim?

Aşağıdaki nasıl yapacağını Python iki dekoratörler yapabilir miyim?

@makebold
@makeitalic
def say():
   return "Hello"

dönmelidir

<b><i>Hello</i></b>

HTML Bu şekilde gerçek bir uygulamada, sadece mimar ve dekoratör zincirleme nasıl çalıştığını anlamaya çalışarak yapmaya çalışıyorum.

CEVAP
11 NİSAN 2009, CUMARTESİ


the documentation dekoratörler nasıl çalıştığını kontrol edin. İstediğin şey burada:

def makebold(fn):
    def wrapped():
        return "<b>"   fn()   "</b>"
    return wrapped

def makeitalic(fn):
    def wrapped():
        return "<i>"   fn()   "</i>"
    return wrapped

@makebold
@makeitalic
def hello():
    return "hello world"

print hello() ## returns <b><i>hello world</i></b>

Bunu Paylaş:
  • Google+
  • E-Posta
Etiketler:

YORUMLAR

SPONSOR VİDEO

Rastgele Yazarlar

  • Mr_BrettHooge

    Mr_BrettHoog

    3 Ocak 2011
  • Smith Micro Graphics

    Smith Micro

    15 Mayıs 2008
  • The10HourMan

    The10HourMan

    28 EYLÜL 2012

İLGİLİ SORU / CEVAPLAR