1. ホーム
  2. スクリプト・コラム
  3. パイソン

Python Decorator 練習問題

2022-01-02 18:57:01

<スパン 1. 関数の戻り値+100を取るデコレータを実装し

def wapper(func):

    def innner(*args,**kwargs):

        ret=func(*args,**kwargs)

        ret=print(ret+100)

        return ret

    return innner

@wapper

def func(number):

    return int(number)

func(100)

### result: 200

2. 1回の呼び出しで5回繰り返すようなデコレータを実装してください。

#Python Learning Exchange Group: 725638078

def wapper(func):

    def innner(*args,**kwargs):

        count=0

        while count<5:

            func(*args,**kwargs)

            count+=1

    return innner

@wapper

def func():

    print("execute")

func()

3. 関数が呼び出されるたびに、関数名と関数呼び出しの時点をファイルに書き出すデコレータの実装

import time

def wapper(func):

    def inner(*args,**kwargs):

        with open("log",encoding="utf-8",mode="a+") as f:

            structime=time.localtime()

            f.write(f'Beijing time: {time.strftime("%Y-%m-%d %H:%M:%S",structime)} function name is: {func.__name__}\n')

        ret=func(*args,**kwargs)

        return ret

    return inner

@wapper

def func():

    print("execute")

func()

Pythonのデコレータの練習問題についての記事は以上です。もっと関連するデコレータの練習問題を知りたい方は、BinaryDevelopの過去の記事を検索するか、以下の関連記事を引き続きご覧ください。

この記事の最後に、とても良い勉強になるお勧めの本を紹介します。 チュートリアル Pythonの学習に役立ててください。