首页 > 解决方案 > 在 tkinter 中生成密码时缺少位置参数“pw_len”

问题描述

我正在寻找使用带有此代码的 tkinter 在新窗口中(按下按钮时)生成密码:

import math, random, os, string, tkinter, tkinter as tk

def generate_password(pass_len):
    symbols = "!$%^&*()-_=+QWERTYUIOPASDFGHJKLZXCVBNM1234567890qwertyuiopasdfghjklzxcvbnm"
    genpw = ''.join([symbols[math.floor(int(i) / 256 * len(symbols))] for i in os.urandom(pass_len)])    
    print(genpw)

create = tkinter.Button(root, pady=2, height=3, text = "create password", command = generate_password)

但是,我遇到以下错误:

类型错误:generate_password() 缺少 1 个必需的位置参数:'pass_len'

任何帮助是极大的赞赏。

标签: pythontkinter

解决方案


当您按下创建密码按钮时,tkintergenerate_password不带任何参数调用您的函数,并且您的函数期望一个。
这里有一个简单的解决方案:

create = tkinter.Button(root, pady=2, height=3, text="create password", command= lambda: generate_password(10))

推荐阅读