Уведомления

Группа в Telegram: @pythonsu

#1 Июль 16, 2015 11:50:11

GoblinError
Зарегистрирован: 2015-07-16
Сообщения: 1
Репутация: +  0  -
Профиль   Отправить e-mail  

Можете оценить мой код?

#/usr/bin/env python3
from tkinter import Frame
from tkinter import Tk
from tkinter import Label
from tkinter import Entry
from tkinter import Button
from tkinter import END
import random
import string
class Application(Frame):
    def __init__(self, master):
        Frame.__init__(self, master)
        self.grid()
        self.create_widgets()
    def create_widgets(self):
        self.label_of_key = Label(self, text='Key:')
        self.label_of_key.grid(row=0, column=0)
        self.entry_of_key = Entry(self, width=19, state='readonly')
        self.entry_of_key.grid(row=0, column=1)
        self.button_of_generate = Button(self,
                                         text='Generate',
                                         command=self.generate_key)
        self.button_of_generate.grid(row=0, column=2)
    def generate_key(self):
        self.key = ''.join(random.choice(
            string.ascii_uppercase + string.digits) for i in range(15))
        self.formatted_key = self.key[0:5] + '-' + self.key[
            5:10
        ] + '-' + self.key[10:15]
        self.entry_of_key.configure(state='normal')
        self.entry_of_key.delete(0, END)
        self.entry_of_key.insert(0, self.formatted_key)
        self.entry_of_key.configure(state='readonly')
root = Tk()
root.iconbitmap('icon.gif')
root.title('Steam key generator')
root.resizable(0, 0)
app = Application(root)
root.mainloop()

Офлайн

#2 Июль 16, 2015 13:26:54

4kpt_III
Зарегистрирован: 2014-12-22
Сообщения: 999
Репутация: +  39  -
Профиль   Отправить e-mail  

Можете оценить мой код?

Нужна ревизия с ошибками или что-то не работает?

Офлайн

#3 Июль 16, 2015 15:11:35

forgot_password
Зарегистрирован: 2015-07-16
Сообщения: 1
Репутация: +  0  -
Профиль   Отправить e-mail  

Можете оценить мой код?

4kpt_III
Нужна ревизия с ошибками

Офлайн

#4 Июль 16, 2015 16:49:07

4kpt_III
Зарегистрирован: 2014-12-22
Сообщения: 999
Репутация: +  39  -
Профиль   Отправить e-mail  

Можете оценить мой код?

Не вопрос.

1. Импорты так делать не нужно. Если уж лень писать полностью, тогда

import tkinter as tk
#
root = tk.Tk()

2. Посмотрите, что находится в END.

3. Делать все, что не будет нужно в других методах и не должно быть видно извне класса атрибутами класса не нужно. Это плохо и некрасиво Да и сами потом запутаетесь.

4. Вот эту всю часть луче убрать в проверку иначе при импорте она также будет выполняться и ценности в ООП как таковом уж точно не будет

if __name__ == "__main__":
    root = Tk()
    root.iconbitmap('icon.gif')
    root.title('Steam key generator')
    root.resizable(0, 0)
    app = Application(root)
    root.mainloop()

5. Откройте для себя форматирование строк. Ведь жутко же…

self.formatted_key = self.key[0:5] + '-' + self.key[
            5:10
        ] + '-' + self.key[10:15]

6. PEP8 на досуге почитать не помешает.

P.S. Вообще для первого раза код хороший. Удачи в освоении.

Отредактировано 4kpt_III (Июль 16, 2015 16:50:28)

Офлайн

Board footer

Модераторировать

Powered by DjangoBB

Lo-Fi Version