-1

モジュールに読み取り機能があります。

その機能を同時に実行する場合は、タイムスタンプを付ける必要があります。

どうすればよいですか?

4

4 に答える 4

6

少し異なるアプローチを提供します。

import time

def timestampit(func):
    def decorate(*args, **kwargs):
        decorate.timestamp = time.time()
        return func(*args, **kwargs)
    return decorate

@timestampit
def hello():
    print 'hello'


hello()
print hello.timestamp

time.sleep(1)

hello()
print hello.timestamp

Swaroop の例との違いは次のとおりです。

  1. パフォーマンス テストにより適しているため、タイムスタンプには datetime.now() ではなく time.time() を使用しています。
  2. 装飾された関数の属性としてタイムスタンプを添付しています。このようにして、いつでも呼び出して保持できます。
于 2009-01-09T07:25:40.163 に答える
2
#!/usr/bin/env python

import datetime

def timestampit(func):
    def decorate(*args, **kwargs):
        print datetime.datetime.now()
        return func(*args, **kwargs)
    return decorate

@timestampit
def hello():
    print 'hello'

hello()

# Output:
# $ python test.py 
# 2009-01-09 11:50:48.704584
# hello
于 2009-01-09T06:21:01.137 に答える
0

Terik Ziade によるコード

( timeit モジュールを使用するより洗練されたバージョンは、彼の最近の著書 Expert Python Programming にあります)

于 2009-01-09T11:50:52.947 に答える
0

興味がある場合は、python wiki にデコレータに関する豊富な情報があります

于 2009-01-09T10:27:02.483 に答える