Tôi mới dùng Python và cố gắng viết một chương trình bằng tkinter. Tại sao hàm Xin chào bên dưới được thực thi? Như tôi đã hiểu, cuộc gọi lại sẽ chỉ được thực hiện khi nhấn nút? Tôi rất bối rối ...Tại sao tham số Nút "lệnh" được thực hiện khi được khai báo?
>>> def Hello():
print("Hi there!")
>>> hi=Button(frame,text="Hello",command=Hello())
Hi there!
>>>
Cảm ơn bạn! Theo dõi rõ ràng là; làm thế nào để vượt qua đối số? Bây giờ tôi đang đọc về Lambda, có vẻ như đó chỉ là câu trả lời. – wjakobw
@wjakobw - Vượt qua đối số cho hàm hoặc chuyển hàm làm đối số? Trong trường hợp đầu tiên bạn khai báo các đối số trong định nghĩa hàm ex: 'def func (par1, par2):' trong phần sau, bạn chỉ cần sử dụng tên hàm mà không có dấu ngoặc đơn, như tôi đã nêu trong câu trả lời của tôi. Kể từ khi bạn được thừa nhận là mới để python, tôi có thể đề nghị [đọc này] (http://www.diveintopython.net/)? Thật dễ dàng để theo dõi và rất thú vị. – mac
Tôi muốn chuyển một biến làm đối số khi nhấn nút. Lệnh theo cách thông thường = Hello (arg) sẽ không hoạt động khi gọi lại sau đó chứa các dấu ngoặc đơn và sử dụng giá trị trả về thay cho hàm. * Trong ví dụ trên Hello-function không có đối số, nhưng hãy tưởng tượng một số trường hợp khác. – wjakobw