在tkin中生成密码时缺少位置参数“pw_len”

2024-05-05 23:54:17 发布

您现在位置:Python中文网/ 问答频道 /正文

我希望使用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)

但是,我遇到了以下错误:

TypeError: generate_password() missing 1 required positional argument: 'pass_len'

非常感谢您的帮助


Tags: 代码import密码lenostkintercreaterandom
1条回答
网友
1楼 · 发布于 2024-05-05 23:54:17

当您按下“创建密码”按钮时,tkinter无需任何参数即可调用generate_password函数,您的函数需要一个参数。
这里有一个简单的解决方案:

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

相关问题 更多 >