Które z poniższych stwierdzeń, jeśli stwierdzenia są bardziej Pythoniczne?Czy Prawo De Morgana jest Pythoniczne?
if not a and not b:
do_something
LUB
if not (a or b):
do something
Jego logika predykatów nie tak powinno się używać słów kluczowych Pythona, ponieważ jej bardziej czytelnej prawo?
W późniejszym rozwiązaniu bardziej optymalnym niż inne? (Nie wierzę w to).
Czy są na niej jakieś przewodniki PEP-8?
kodu bajtowego z dwóch podejść (jeśli ma to znaczenie):
In [43]: def func1():
if not a and not b:
return
....:
....:
In [46]: def func2():
if not(a or b):
return
....:
....:
In [49]: dis.dis(func1)
2 0 LOAD_GLOBAL 0 (a)
3 UNARY_NOT
4 JUMP_IF_FALSE 13 (to 20)
7 POP_TOP
8 LOAD_GLOBAL 1 (b)
11 UNARY_NOT
12 JUMP_IF_FALSE 5 (to 20)
15 POP_TOP
3 16 LOAD_CONST 0 (None)
19 RETURN_VALUE
>> 20 POP_TOP
21 LOAD_CONST 0 (None)
24 RETURN_VALUE
In [50]: dis.dis(func2)
2 0 LOAD_GLOBAL 0 (a)
3 JUMP_IF_TRUE 4 (to 10)
6 POP_TOP
7 LOAD_GLOBAL 1 (b)
>> 10 JUMP_IF_TRUE 5 (to 18)
13 POP_TOP
3 14 LOAD_CONST 0 (None)
17 RETURN_VALUE
>> 18 POP_TOP
19 LOAD_CONST 0 (None)
22 RETURN_VALUE
Co masz na myśli, mówiąc o słowach kluczowych w Pythonie? Używasz słów kluczowych Python w obu przypadkach. – sepp2k
Przeprosiny Miałem na myśli składnię not(). W moim przypadku niektóre rzeczy będą wyglądały gorzej, jeśli nie użyję składni (a lub b). Dlatego bardziej pochylam się nad pierwszym fragmentem kodu. – nialloc
Mam tendencję do myślenia, że "do_something" i "do zrobienia czegoś" (bez podkreślenia) mogą być różne – Uri