파이썬에서 no-op을 수행하는 표준 방법은 무엇입니까?
저는 종종 if /elif /other가 python으로 구성되어 있는지 쓰는 제 자신을 발견하고 발생할 수 있지만 해당 작업이 아무것도 하지 않는 옵션을 포함하고 싶습니다.나는 만약 진술이 있다면 그것들을 제외할 수 있다는 것을 알고 있지만, 가독성을 위해 그것들을 모두 포함하는 것이 도움이 된다는 것을 발견했습니다. 그래서 당신이 코드를 훑어보고 있다면 각 옵션의 결과를 볼 수 있습니다.no-op 코드화 방법은 무엇입니까?현재 저는 다음과 같이 작업하고 있습니다.
no_op = 0
if x == 0:
y = 2 * a
elif x == 1:
z = 3 * b
elif x == 3:
no_op
(코드는 사실 그것보다 꽤 길고, 더 복잡합니다.이는 구조를 설명하기 위한 것입니다.
변수를 노옵으로 사용하는 것을 좋아하지는 않지만, 제가 생각할 수 있는 가장 깔끔한 방법입니다.더 좋은 방법이 있습니까?
no-op에 패스 사용:
if x == 0:
pass
else:
print "x not equal 0"
여기 또 다른 예가 있습니다.
def f():
pass
또는:
class c:
pass
어때.pass
?
nop으로 동작하는 함수가 필요하면 시도합니다.
nop = lambda *a, **k: None
nop()
때때로 종속성을 선택적으로 설정할 때 다음과 같은 작업을 수행합니다.
try:
import foo
bar=foo.bar
baz=foo.baz
except:
bar=nop
baz=nop
# Doesn't break when foo is missing:
bar()
baz()
표준 출력에 라인 피드가 없고 빈 문자열을 인쇄할 수 있습니다.이것은 린터가 당신이 사용하는 것을 금지하는 경우에 유용할 수 있습니다.pass
불필요하지만 주석을 위한 줄이 필요한 경우:
print('', end='') # This does next to nothing
빈칸으로 사용print
CPU 사이클 낭비 외에 부작용은 거의 없습니다.
$ echo "print('', end='') # This does next to nothing" > main.py
$ python3 main.py
$
참고: 사용pass
여기서는 구문적으로 옳았을 것이지만, 링터들은 다음과 같이 불평할 수 있습니다.
$ echo "pass # This does next to nothing" > main.py
$ python3 main.py
$
...
(builtins.ellipsis
의 실행 가능한 대안으로 언급되지 않았습니다.pass
표현 맥락에서.
def f(condition: bool) -> None:
if condition:
print("hello ", end="")
else:
pass # noop
print("world") if condition else ...
f(False) # ''
f(True) # 'hello world'
인수가 없는 'return'은 분명히 no-op이기 때문에, 일부 코드에서는 Python의 일부 난독화된 'virus'를 분석하는 과정에서 한동안 저를 괴롭혔습니다.
내 책상 위의 간단한 실습은 다음과 같은 행을 사용합니다.
dummy = 0
일반적인 코더(다른 일반적인 프로그래밍 언어에서 온 코더도)는 즉시 그것을 이해할 것입니다.
언급URL : https://stackoverflow.com/questions/690622/whats-a-standard-way-to-do-a-no-op-in-python
'programing' 카테고리의 다른 글
ggplot2에서 추가 범례 제거 (0) | 2023.06.19 |
---|---|
Node.js를 사용하여 현재 스크립트의 경로를 가져오려면 어떻게 해야 합니까? (0) | 2023.06.19 |
Eclipse 프로젝트에 C/C++ 특성 추가 (0) | 2023.06.19 |
ReDim "가입자 범위를 벗어남" 유지 (0) | 2023.06.19 |
MariaDB: 다중 테이블 업데이트가 단일 행을 여러 번 업데이트하지 않습니까?왜요? (0) | 2023.06.19 |