Самый простой способ указать аргументы фрейма при использовании класса - передать аргументы ключевого слова в фрейм. Это легко сделать, добавив **kwargs
в конец аргументов в init. тогда вы можете передать все аргументы, как обычно, при объявлении фрейма.
Код будет выглядеть так:
from tkinter import *
import random
from PIL import ImageTk, Image
win = Tk()
win.attributes('-fullscreen', True)
# Define Frame Class
class MyFrame:
def __init__(self, master, **kwargs):
frame = Frame(master, **kwargs)
frame.pack()
def FrameOne():
frameone = MyFrame(win, width = win.winfo_screenwidth(),
height = win.winfo_screenheight()//2,
bg='black')
def FrameTwo():
frametwo = MyFrame(win, width=win.winfo_screenwidth(),
height = win.winfo_screenheight()//2,
bg='blue')
#Call Frame (This is where I want the following frames to have different unique attributes)
FrameOne()
FrameTwo()
win.mainloop()
Примечание: если вы хотите указать любые аргументы по умолчанию, применяется ко всем кадрам, добавьте их перед ,**kwargs
в объявлении. Пример: Frame(window, bg="white", **kwargs)
Edit: * args, ** kwargs: * args в основном распаковывается в формате списка. * args принимает как можно больше значений. если вы напечатаете args, он выведет список.
** kwargs в основном распаковывает значение словаря. ** kwargs принимает пары ключ-значение. если вы напечатаете kwargs, он выведет словарь.