가 여기에 내가 무엇을하고 있었는지입니다 (예 : * 운영자 인수가 문자열에 적용) 삼항 연산자 인수에 적용 가지고 :사용은
이#a:1 b: 2 args: N o a r g s
*
운영자가 'No args'
을 풀고있다 끈. 그래서 여기 내가 뭘 했어야 내용은 다음과 같습니다
#Produces expected result:
def func(a,b=1,*args):
print('a:',a,'b:',b,'args:',*args if args else ['No args'])
는 그래서
*
운영자는 전체 삼항 문에 적용됩니다. 그러나 이것은
-
연산자로 발생하지 않는 것 다음
*
운영자가하는 반면
는
def func(a,b=1,*args):
print('a:',a,'b:',b,'negative args[0]:', -args[0] if args else 1000000)
func(1,2)
#expected result:
#a:1 b: 2 negative args[0]: -1000000
#actual result:
#a:1 b: 2 negative args[0]: 1000000
부정적인 -
운영자는 전체 삼항 문에 적용되지 않습니다. 왜? *
연산자의 특별한 점은 무엇입니까?
답변을 매우 친절하고 설명해 주셔서 감사합니다. 기본적으로 (정확하게!) : "그냥 해내겠습니다." ;) –
@RickTeachey : 음, 어느 정도까지 모든 언어의 연산자 우선 순위 규칙은 임의적입니다. 그러나 실제로 언어 디자이너는 일을 더 가독성있게 만드는 우선 순위 규칙을 제시하려고합니다. (파이썬의 디자이너는 선행 규칙을 단순하고 미니멀리스트로 만들기위한 추가적인 제약을 추가하기 때문에 분명하지 않을 때 적어도 기억하기 쉽습니다.) – abarnert
그 점이 좋습니다. –