Можно ли так писать код (PEP 8) Python
class Main(ctk.CTk):
def __init__(self):
super().__init__()
# Open settings.json file
with open('settings.json', 'r') as file:
self.settings = json.load(file)
# Settings variables
# ----------------------------------------------------------------------------
self.THEME = self.settings['Theme'] # Application theme
self.CPU_NAME = cpuinfo.get_cpu_info()['brand_raw'] # CPU name
self.LIST_BARS = [] # List of bars
self.LIST_HEIGHTS = [] # List of bar heights
self.COLOR = None # Default color
# ----------------------------------------------------------------------------
# Theme settings
# -----------------------------------------------
self.set_theme(self.THEME)
self.set_color_theme(self.settings['ColorTheme'])
# -----------------------------------------------
self.THEME = ctk.get_appearance_mode()
# Application settings
# ----------------------------------------
self.title('CPUanalytics')
self.geometry('700x400')
self.resizable(False, False)
self.iconbitmap(f'{self.THEME}\\icon.ico')
# ----------------------------------------
# Color depending on the theme
if self.THEME == 'Light':
self.hover_color = '#ebebeb'
self.active_color = '#aaaaaa'
self.frame_color = '#ffffff'
self.text_color = '#000000'
elif self.THEME == 'Dark':
self.hover_color = '#444444'
self.active_color = '#202020'
self.frame_color = '#202020'
self.text_color = '#ffffff'
# -----------------------------------------------------------------
# MENU FRAME
# -----------------------------------------------------------------
self.menu_frame = ctk.CTkFrame( # Frame
master=self,
width=48,
height=400,
corner_radius=0,
border_width=0
)
# 'Home' button
self.home_menu_el = ctk.CTkButton( # Button
master=self.menu_frame,
image=self.open_image('analytics_menu_el.png'),
text='',
width=30,
height=30,
corner_radius=7,
bg_color='transparent',
fg_color='transparent',
hover_color=self.hover_color,
command=self.home_menu_open
)
# 'History' button
self.history_menu_el = ctk.CTkButton( # Button
master=self.menu_frame,
image=self.open_image('history_menu_el.png'),
text='',
width=30,
height=30,
corner_radius=7,
bg_color='transparent',
fg_color='transparent',
hover_color=self.hover_color
)
# Placement of objects --------------------------------------------
self.menu_frame.place(x=0, y=0) # Frame
self.home_menu_el.place(x=5, y=5) # Button
self.history_menu_el.place(x=5, y=40) # Button
Ответы (1 шт):
Автор решения: Armen Legran
→ Ссылка
Ваш код в основном соответствует стандарту PEP 8, но есть несколько моментов, которые стоит учесть:
- Комментарии: PEP 8 рекомендует использовать два пробела перед встроенным комментарием и один пробел после символа #. Например:
self.menu_frame.place(x=0, y=0) # Frame
Длина строки: PEP 8 предлагает ограничить максимальную длину строки кода 79 символами. Это помогает сделать код более читаемым.
Имена переменных: PEP 8 рекомендует использовать snake_case для имен переменных и функций. В вашем коде используется camelCase.
self.THEME -> self.theme
self.CPU_NAME -> self.cpu_name
self.LIST_BARS -> self.list_bars
self.LIST_HEIGHTS -> self.list_heights
self.COLOR -> self.color
self.hover_color -> self.hover_color
self.active_color -> self.active_color
self.frame_color -> self.frame_color
self.text_color -> self.text_color
self.menu_frame -> self.menu_frame
self.home_menu_el -> self.home_menu_el
self.history_menu_el -> self.history_menu_el
- Пробелы вокруг операторов: PEP 8 рекомендует окружать большинство бинарных операторов одним пробелом с каждой стороны. Например:
f'{self.THEME}\\icon.ico'-> f'{self.THEME} \\ icon.ico' # cледует добавить пробелы вокруг \\.