Отсутствует позиционный аргумент "pw_len" при генерации пароля в tkinter

figelthegreat спросил: 28 апреля 2018 в 09:22 в: python

Я ищу, чтобы сгенерировать пароль в новом окне (при нажатии кнопки) с помощью tkinter с этим кодом:

import math, random, os, string, tkinter, tkinter as tkdef 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 обязательный позиционный аргумент: 'pass_len'

Приветствуется любая помощь.

1 ответ

Есть решение
Yassine Faris ответил: 28 апреля 2018 в 09:29

Когда вы нажмете кнопку "Создать пароль", tkinter вызовет вашу функцию generate_password без каких-либо аргументов, и вы ее ожидаете.
Здесь простое решение:

create = tkinter.Button(root, pady=2, height=3, text="create password", command= lambda: generate_password(10))
figelthegreat ответил: 29 апреля 2018 в 07:20
Спасибо, сэр! Я вижу, что у меня было несколько ошибок в форматировании моего запроса, спасибо за помощь независимо.