微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

AttributeError:“函数”对象没有属性“网格”

如何解决AttributeError:“函数”对象没有属性“网格”

如果有人可以帮我解决这个问题,我将是python的新手!

import tkinter as tk import random


window = tk.Tk()

window.title("Randomizer")

window.geometry("400x400")


#----RANDOM SELECT GEN--------
def random_gen():
    Champ=['Aatrox','Ahri','Akali','Alistar','Amumu','Anivia','Annie','Ashe','Azir','Blitzcrank','Brand','Braum','Caitlyn','Cassiopeia','ChoGath','Corki','Darius','Diana','Dr. Mundo','Draven','Elise','Evelynn','Ezreal','fiddlesticks','Fiora','Fizz','galio','Gangplank','Garen','Gnar','Gragas','Graves','Hecarim','Heimerdinger','Irelia','Janna','Jarvan IV','Jax','Jayce','Jinx','Kalista','Karma','Karthus','Kassadin','Katarina','Kayle','Kennen','KhaZix','KogMaw','LeBlanc','Lee Sin','Leona','Lissandra','Lucian','Lulu','Lux','Malphite','Malzahar','Maokai','Master Yi','Miss Fortune','Mordekaiser','Morgana','Nami','Nasus','Nautilus','NiDalee','Nocturn','Nunu','Olaf','Orianna','Pantheon','Poppy','Quinn','Rammus','RekSai','Renekton','Rengar','Riven','Rumble','Ryze','Sejuani','Shaco','Shen','Shyvana','Singed','Sion','Sivir','Skarner','Sona','Soraka','Swain','Syndra','Talon','Taric','Teemo','Thresh','Tristana','Trundle','Tryndamere','Twisted Fate','Twitch','Udyr','Urgot','Varus','Vayne','Veigar','VelKoz','Vi','Viktor','Vladimir','Volibear','Warwick','Wukong','Xerath','Xin Zhao','Yasuo','Yorick','Zac','Zed','Ziggs','Zilean','Zyra','aphelios','aurelion sol','bard','Camille','ekko','illaoi','ivern','kaisa','jhin','kayne','kindred','kled','lillia','neeko','ornn','pyke','qiyana','rakan','xayah','sett','senna','Sylas','tahm kench','Taliyah','yone','yuumi','zoe']  
    Lane=['top','bottom','middle','support','jungle']
    Build=['AD','Tank','AP','Crit','Attack speed','Assassin']

    x=random.choice(Build)
    y=random.choice(Champ)
    z=random.choice(Lane)

    print (x),(y),(z)


#------ANSWER PULL-------------
def random_display():
    result = random_gen()
    results_display = tk.Text(master=window,height=10,width=30)
    random_display.grid(column=0,row=3)

    results_display.insert(tk.END,result)

#-----BUTTON---------------

button = tk.Button(text="Goodluck!",command=random_display)
button.grid(column=0,row=1)

window.mainloop()

解决方法

您使用了错误的变量:

results_display = tk.Text(master=window,height=10,width=30)
random_display.grid(column=0,row=3) # <- here

应该是

results_display = tk.Text(master=window,width=30)
results_display.grid(column=0,row=3)
,

此外,如果您不介意每次想要新的选秀权时都运行该程序(因此在每局游戏开始时),则可以使用以下简化程序:

from random import randint

CHAMPIONS = ['Aatrox','Ahri','Akali','Alistar','Amumu','Anivia','Annie','Ashe','Azir','Blitzcrank','Brand','Braum','Caitlyn','Cassiopeia','ChoGath','Corki','Darius','Diana','Dr. Mundo','Draven','Elise','Evelynn','Ezreal','Fiddlesticks','Fiora','Fizz','Galio','Gangplank','Garen','Gnar','Gragas','Graves','Hecarim','Heimerdinger','Irelia','Janna','Jarvan IV','Jax','Jayce','Jinx','Kalista','Karma','Karthus','Kassadin','Katarina','Kayle','Kennen','KhaZix','KogMaw','LeBlanc','Lee Sin','Leona','Lissandra','Lucian','Lulu','Lux','Malphite','Malzahar','Maokai','Master Yi','Miss Fortune','Mordekaiser','Morgana','Nami','Nasus','Nautilus','Nidalee','Nocturn','Nunu','Olaf','Orianna','Pantheon','Poppy','Quinn','Rammus','RekSai','Renekton','Rengar','Riven','Rumble','Ryze','Sejuani','Shaco','Shen','Shyvana','Singed','Sion','Sivir','Skarner','Sona','Soraka','Swain','Syndra','Talon','Taric','Teemo','Thresh','Tristana','Trundle','Tryndamere','Twisted Fate','Twitch','Udyr','Urgot','Varus','Vayne','Veigar','VelKoz','Vi','Viktor','Vladimir','Volibear','Warwick','Wukong','Xerath','Xin Zhao','Yasuo','Yorick','Zac','Zed','Ziggs','Zilean','Zyra','aphelios','aurelion sol','bard','Camille','ekko','illaoi','ivern','kaisa','jhin','kayne','kindred','kled','lillia','neeko','ornn','pyke','qiyana','rakan','xayah','sett','senna','Sylas','tahm kench','Taliyah','yone','yuumi','zoe']
LANES = ['Top','Jungle','Mid','Bottom','Support']
BUILDS = ['AD','Tank','AP','Crit','Attack speed','Lethality']

print(
    CHAMPIONS[randint(0,len(CHAMPIONS))],LANES[randint(0,len(LANES))],BUILDS[randint(0,len(BUILDS))]
)

input('Press "enter" to close this window...')
,

这是您的更正代码:

import tkinter as tk 
import random


window = tk.Tk()

window.title("Randomizer")

window.geometry("400x400")


#----RANDOM SELECT GEN--------
def random_gen():
    Champ = ['Aatrox','zoe']
    Lane = ['top','bottom','middle','support','jungle']
    Build = ['AD','Assassin']

    x = random.choice(Build)
    y = random.choice(Champ)
    z = random.choice(Lane)

    return (x,y,z)


#------ANSWER PULL-------------
def random_display():
    result = random_gen()
    results_display = tk.Text(master=window,width=30)
    results_display.grid(column=0,row=3)

    results_display.insert(tk.END,result)

#-----BUTTON---------------


button = tk.Button(text="Goodluck!",command=random_display)
button.grid(column=0,row=1)

window.mainloop()

由于print (x),(y),(z)应该为return,而不是在random_gen()函数中打印,因此无法正常工作

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。