İlk olarak, python'un kayıt çerçevesinin adaylığını ikinci olarak vereceğim . Bununla birlikte, nasıl kullandığınız konusunda biraz dikkatli olun. Özellikle: günlük çerçevesinin değişkenlerinizi genişletmesine izin verin, bunu kendiniz yapmayın. Örneğin, bunun yerine:
logging.debug("datastructure: %r" % complex_dict_structure)
yaptığınızdan emin olun:
logging.debug("datastructure: %r", complex_dict_structure)
çünkü benzer görünseler de, ilk sürüm devre dışı bırakılsa bile repr () maliyetine maruz kalır . İkinci versiyon bundan kaçınıyor. Benzer şekilde, kendinizinkini atarsanız, şöyle bir şey öneririm:
def debug_stdout(sfunc):
print(sfunc())
debug = debug_stdout
aracılığıyla arandı:
debug(lambda: "datastructure: %r" % complex_dict_structure)
Bu, şunu yaparak devre dışı bırakırsanız, ek yükü önleyecektir:
def debug_noop(*args, **kwargs):
pass
debug = debug_noop
Bu dizeleri hesaplamanın ek yükü, 1) hesaplaması pahalı olmadıkça veya 2) hata ayıklama deyimi, örneğin bir n ^ 3 döngüsünün veya başka bir şeyin ortasında olmadığı sürece önemli değildir. Bunun hakkında hiçbir şey bildiğimden değil.