>  기사  >  백엔드 개발  >  버튼의 \'명령\' 매개변수 기능은 언제 실행됩니까?

버튼의 \'명령\' 매개변수 기능은 언제 실행됩니까?

Barbara Streisand
Barbara Streisand원래의
2024-10-19 07:57:021069검색

When is the Button's

선언 시 버튼의 "command" 매개변수 실행: 미스터리 풀기

Python tkinter에서 Button 위젯의 "command" 매개변수는 다음 작업을 수행하는 함수를 지정하기 위한 것입니다. 버튼을 눌렀을 때 실행됩니다. 그러나 초보자들이 흔히 저지르는 오해는 버튼을 선언하는 순간에도 "명령"과 관련된 함수가 실행된다는 관찰입니다.

이 동작을 이해하려면 Python이 함수 매개 변수를 처리하는 방법을 자세히 살펴봐야 합니다. 함수를 매개변수로 전달하는 경우 두 가지 가능성이 있습니다.

  • 함수 객체 전달: 이는 단순히 command=Hello와 같이 함수 이름을 참조하여 수행됩니다.
  • 함수의 반환 값 전달: 이는 command=Hello()와 같이 함수 호출을 괄호로 묶어 수행됩니다.

제공한 예제 코드에서 Hello()는 매개 변수로 전달됩니다. Button 위젯. 이는 함수가 즉시 실행되고 해당 반환 값이 "command"에 전달됨을 의미합니다. Hello()는 아무 것도 반환하지 않으므로 None을 반환하고 이는 버튼의 "command" 매개변수에 할당되어 사실상 아무 작업도 수행하지 않습니다.

이 문제를 해결하고 버튼을 클릭할 때만 함수를 실행하려면, 다음과 같이 함수 개체를 전달해야 합니다.

<code class="python">hi = Button(frame, text="Hello", command=Hello)</code>

이렇게 하면 버튼을 누르면 Hello() 함수가 호출되어 의도한 코드가 실행됩니다.

추가로 , 함수에 인수를 전달해야 하는 경우 아래와 같이 람다 식을 사용하여 함수 호출을 래핑할 수 있습니다.

<code class="python">hi = Button(frame, text="Hello", command=lambda: Goodnight("Moon"))</code>

이 경우 람다 식은 Goodnight() 함수가 버튼 선언시에는 실행되지 않고 오히려 버튼이 클릭되어 명령이 실행될 때까지 기다립니다.

위 내용은 버튼의 \'명령\' 매개변수 기능은 언제 실행됩니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

성명:
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.