简体   繁体   English

我试图在另一个文件中使用另一个 python 文件,而我的 function 没有传递数字

[英]Im trying to use another python file inside a different one and my function isnt passing numbers

File 1:文件 1:

from tkinter import *
import randomnumgenerator as rng

root = Tk()

canvas = Canvas(root, width='300', height='300')
canvas.pack()

canvas.create_rectangle(rng.generate_number(-10, 10), rng.generate_number(-10, 10), 200, 200, fill='red')

root.mainloop()

File 2:文件 2:

import random

def generate_number(min_number, max_number):
    random_number = random.randint(min_number,max_number)

This is my error Exception has occurred: TclError wrong # coordinates: expected 0 or 4, got 2 File "main.py", line 9, in canvas.create_rectangle(rng.generate_number(-10, 10), rng.generate_number(-10, 10), 200, 200, fill='red')这是我的错误 发生异常:TclError 错误 # 坐标:预期 0 或 4,得到 2 文件“main.py”,第 9 行,在 canvas.create_rectangle(rng.generate_number(-10, 10), rng.generate_number(- 10, 10), 200, 200, 填充='红色')

wrong # coordinates: expected 0 or 4, got 2 means that create_rectangle() didn't get the 2x2=4 numbers as coordinates. wrong # coordinates: expected 0 or 4, got 2意味着create_rectangle()没有将 2x2=4 数字作为坐标。

As @Delrius Euphoria points out, you forgot to actually return the random numbers from generate_number() .正如@Delrius Euphoria 指出的那样,您实际上忘记了从generate_number()返回随机数。 By default, Python has this function return None instead.默认情况下,Python 有这个 function 返回None代替。 tkinter.Canvas notices that its two first params are None . tkinter.Canvas 注意到它的前两个参数是None So what you did was:所以你所做的是:

canvas.create_rectangle(None, None, 200, 200, fill="red")

:-) :-)

You will have the same problem when you put in one file - so it has nothing to do with importing.当您放入一个文件时,您将遇到同样的问题 - 所以它与导入无关。

You have to use return in function generate_number()您必须在 function generate_number()中使用return

def generate_number(min_number, max_number):
    return random.randint(min_number,max_number)

and then you can get result from function and assign to variables然后您可以从 function 获得结果并分配给变量

x = rng.generate_number(-10, 10)
y = rng.generate_number(-10, 10)
canvas.create_rectangle(x, y, 200, 200, fill='red')

or use directly in other function或者直接在其他function中使用

canvas.create_rectangle(rng.generate_number(-10, 10), rng.generate_number(-10, 10), 200, 200, fill='red')

Minimal working code最少的工作代码

import tkinter as tk  # PEP8: `import *` is not preferred
import random

# --- functions ---

def generate_number(min_number, max_number):
    return random.randint(min_number,max_number)

# --- main ---

root = tk.Tk()

canvas = tk.Canvas(root, width='300', height='300')
canvas.pack()

#x = generate_number(-10, 10)
#y = generate_number(-10, 10)
#canvas.create_rectangle(x, y, 200, 200, fill='red')

canvas.create_rectangle(generate_number(-10, 10), generate_number(-10, 10), 200, 200, fill='red')

root.mainloop()

PEP 8 -- Style Guide for Python Code PEP 8 -- Python 代码的样式指南

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

相关问题 将函数内部的变量传递给另一个Python文件 - Passing a variable inside of a function to another Python file 我在我的项目中尝试了两个不同的问题,一个很简单,但代码没有按应有的方式工作。 第二个问题也涉及匹配关键词 - im trying two different questions in my project one is easy but the code isnt working as should. also the second question involves matching key words 类型错误:“功能”object 不可下标 python。 我试图将每个.mp4 文件合并到一个视频中 - TypeError: 'function' object is not subscriptable python. Im trying to combine every .mp4 file into one video 我试图写入txt.file的函数有什么问题? - whats wrong with my function that im trying to write to a txt.file? 如何在 class Z23EEEB4347BDD265DDFC6B7EE9A3B7 中的另一个 function 中使用一个 function 变量 - How to use one function variables inside another function in class python 尝试将原始字节存储在我的一个Python脚本文件中 - Trying to store raw bytes inside my one Python script file 我的 if 语句在我的 Python 文件中不起作用 - My if statement isnt working in my Python file 我的标志没有被捕获,它只返回第一个可能的。 我试图取一个字符串并在它后面添加一个 D 如果它是一个数字和一个 X 如果它不是 - My flag isnt catching, it only returns the first possible. Im trying to take a string and add a D after it if its a digit and a X if it isnt 我正在尝试制作蛇,但这不起作用 - Im trying to make snake and this isnt working 试图将函数内部的变量用于不同的函数? - Trying to use a variable that is inside a function for different functions?
 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM