2012-09-18 17 views
5

Często muszę tymczasowego komentarzu jakiś kod, ale są sytuacje, takie jak, w miarę możliwości komentowania pojedynczego wiersza kodu otrzymasz błąd składni Python NOOP wymiana

if state == False: 
    print "Here I'm not good do stuff" 
else: 
# print "I am good here but stuff might be needed to implement" 

Czy jest coś, co może działać jako NOOP, aby zachować tę składnię poprawnie?

Odpowiedz

4

odkryłem, że jeśli umieścić kod w flaków cytowanym komentarzu '''comment''' działa jak noop, dzięki czemu można umieścić potrójną cytowany komentarz, który będzie działał jako noop w przypadku, gdy kod zostanie usunięty lub skomentował #.

Na powyższym przypadku:

if state == False: 
    '''this comment act as NOP''' 
    print "Here I'm not good do stuff" 
else: 
    '''this comment act as NOP and also leaves the 
    else branch visible for future implementation say a report or something''' 
# print "I am good here but stuff might be needed to implement" 
+7

Powinieneś użyć 'pass' (http://docs.python.org/reference/simple_stmts.html#pass) jako noop. Ma to tę zaletę, że jest krótkie i nie ma żadnego dodatkowego znaczenia (ciąg może być interpretowany w niepożądany sposób przez program). – Nobody

+0

@Nobody Czy masz przykład niechcianego zachowania, aby wiedzieć, czego unikać? –

+0

Nagie struny powinny być w porządku, ale musisz uważać, aby nie pisać doctests do tych ciągów (jeśli nie są one poszukiwane). Poza tym jest niepotrzebne parsowanie długich łańcuchów, które będą oceniane i zwracane tylko po to, aby je zignorować (może to zostanie zoptymalizowane). Nie mogę wymyślić więcej niż tylko przypadków narożnych, które są bardzo mało prawdopodobne, ale mimo to 'pass' jest drogą do zrobienia, ponieważ został stworzony dla tej sytuacji. Jeśli użyjesz komentarzy w ten sposób, złamiesz regułę komentarzy: że można je usunąć bez zmiany semantyki programów. – Nobody

6

W Pythonie 3, ... sprawia dość dobre pass podstaw:

Przeczytałem to jako "do zrobienia", natomiast pass oznacza "tę stronę celowo pozostawiono pustą".

To tak naprawdę dosłownie, podobnie jak None, True i False, ale optymalizują one wszystkie.