<p>函数由4个参数定义。当通过按钮中的命令选项调用函数时,必须传递这些参数。我不知道你的函数是做什么的,所以,我现在将替换它来打印4个参数。你知道吗</p>
<pre><code>from tkinter import *
import sqlite3
root = Tk()
def simula_partita(modello, squadraCasa, squadraOspite, max_gol=10):
print(modello, squadraCasa, squadraOspite, max_gol)
m = StringVar()
c = StringVar()
o = StringVar()
g = StringVar()
sceltaModello = Entry(root, textvariable = m)
sceltaCasa = Entry(root, textvariable = c)
sceltaOspite = Entry(root, textvariable = o)
sceltaGol = Entry(root, textvariable = g)
sceltaModello.pack()
sceltaCasa.pack()
sceltaOspite.pack()
sceltaGol.pack()
m.set('modello_poisson')
c.set('Squadra di Casa')
o.set('Squadra Ospite')
g.set('Max Gol')
avvia = Button(root, text = "Avvia Simulazione", command = lambda: simula_partita(m.get(), c.get(), o.get(), g.get()))
avvia.pack()
root.mainloop()
</code></pre>
<p><strong>编辑:回答OP的具体问题</p>
<p>输入字段必须设置为字符串。我知道你想把参数作为变量传递。但是输入字段的输出将是一个字符串。你知道吗</p>
<p>您可以创建一个dict,其中字符串作为键,变量作为值(即下面代码中的“data”),然后像<code>data[m.get()]</code>一样发送变量。如果您有更多的变量可以提供,您可以添加它作为另一个键值对在字典中。你知道吗</p>
<p>另外,第四个参数是一个int,因此在使用int()传递之前,我将其设置为int。你知道吗</p>
<p>尝试在完整代码中更改为这些行。你知道吗</p>
<pre><code>m.set('modello_poisson')
c.set('Squadra di Casa')
o.set('Squadra Ospite')
g.set('Max Gol')
data={'modello_poisson':modello_poisson}
avvia = Button(root, text = "Avvia Simulazione", command = lambda: simula_partita(data[m.get()], c.get(), o.get(), int(g.get())))
</code></pre>
<p>我在4个条目中给出了以下内容</p>
<pre><code>modello_poisson
Juventus
Atalanta
4
</code></pre>
<p>得到了一个输出</p>
<pre><code>[[0.03608837 0.03099437 0.0133097 0.00381033 0.00081812]
[0.08888343 0.07633721 0.03278097 0.00938461 0.00201498]
[0.1094572 0.09400692 0.04036875 0.01155685 0.00248139]
[0.0898621 0.07717774 0.03314191 0.00948794 0.00203717]
[0.0553312 0.047521 0.02040662 0.00584205 0.00125436]]
</code></pre>
<p>打印到我的控制台上。你知道吗</p>