내가 약에 가깝다 파이썬에서 일부 코드를 쓰고 있어요의 조합에 따라 동작을 확장 다음조건
vals = [3, 4]
constraints = [5, 10]
def foo(val, constraint):
return val <= constraint
def bar(x, y):
# do stuff such as:
print(x, y)
def baz(val):
# transform val, such as by doing:
new_val = (val * 20 - 5) ** 2
return new_val
bar(*vals)
if foo(vals[0], constraints[0]):
bar(vals[0], baz(vals[1]))
if foo(vals[1], constraints[1]):
bar(baz(vals[0]), vals[1])
if foo(vals[0], constraints[0]) and foo(vals[1], constraints[1]):
bar(baz(vals[0]), baz(vals[1]))
나는 이것이 대수 관계임을 인식, 그래서 더가 있어야 느낌 이것을 코드로 표현하는보다 간결한 방법.
은의 인덱스 0에foo
에 의해 반환 된
True
이
A
이며,
True
는 1
B
입니다 인덱스에
foo
에 의해 반환한다고 가정 해 봅시다.
A
이 참일 때 적용되는 연산은
a
이고, 마찬가지로
B
은
b
입니다. 다른 결과는
_
입니다. 값들의 세트는 것이 발생하기 :
| _ | A | B |
-----------------------------
_ | x, y | x, y | x, y |
| | ax, y | x, by |
-----------------------------
| x, y | x, y | x, y |
A | ax, y | ax, y | x, by |
| | | ax, by |
-----------------------------
| x, y | x, y | x, y |
B | x, by | ax, y | x, by |
| | ax, by | |
간결한 (바람직하게는 일반)가 나중에 map
PED 또는 반복 될 수 있도록 이들 값을 생성하는 방법이 있는가?
이 문맥에서'bar'와'baz'는 무엇입니까? – James
@James'bar'는 표시된 코드와 관련이없는 부작용이있는 함수입니다. 'baz'는 덧셈, 곱셈 또는 유형을 보존하는 다른 연산과 같은 입력 값의 변환입니다. – Aaron3468