看看这个python 3代码。
import random
from tkinter import *
from PIL import Image, ImageTk
def img1():
root = Tk()
root.geometry("400x400")
load = Image.open("1.png")
render = ImageTk.PhotoImage(load)
img = Label(image=render)
img.image = render
img.place(x=0,y=0)
def img2():
root = Tk()
root.geometry("400x400")
load = Image.open("2.png")
render = ImageTk.PhotoImage(load)
img = Label(image=render)
img.image = render
img.place(x=0,y=0)
def img3():
root = Tk()
root.geometry("400x400")
load = Image.open("3.png")
render = ImageTk.PhotoImage(load)
img = Label(image=render)
img.image = render
img.place(x=0,y=0)
def img4():
root = Tk()
root.geometry("400x400")
load = Image.open("4.png")
render = ImageTk.PhotoImage(load)
img = Label(image=render)
img.image = render
img.place(x=0,y=0)
def img5():
root = Tk()
root.geometry("400x400")
load = Image.open("5.png")
render = ImageTk.PhotoImage(load)
img = Label(image=render)
img.image = render
img.place(x=0,y=0)
def img6():
root = Tk()
root.geometry("400x400")
load = Image.open("6.png")
render = ImageTk.PhotoImage(load)
img = Label(image=render)
img.image = render
img.place(x=0,y=0)
List_img = [img1(), img2(), img3(), img4(), img5(), img6()]
random.choice(List_img)
我想随机选择一张图片,但它会不断推送所有图片。
最后两行是它变得复杂的地方。
我没有收到错误。
我是python的新手,所以很好< 3
(所以我的代码太少,文字很少,我必须添加更多,所以请耐心等待c;)
答案 0 :(得分:1)
如果您只想调用其中一个函数,请将函数本身放在列表中,而不是调用函数的结果。
img1()
中的括号是您调用该函数的方式。如果您只想将函数本身视为一个值,那只是img1
。所以:
List_img = [img1, img2, img3, img4, img5, img6]
然后,当然,你必须打电话给你选择的那个。与img1()
调用函数img1
的方式相同,这是:
random.choice(List_img)()
...表示调用random.choice
选择的任何函数。
这里的关键思想是函数是“一等值” - 你可以将它们粘贴在列表中,将它们传递给函数,将它们存储在变量中等等,就像你可以用数字或字符串一样,然后你以后可以打电话给他们。