Python Forum
Thread Rating:
  • 0 Vote(s) - 0 Average
  • 1
  • 2
  • 3
  • 4
  • 5
kwargs question
#6
I think this is a bad idea:
class ClassName(Tk.Frame):
    def __init__( self, parent, **options ):
        Tk.Frame.__init__( self, parent, **options ) 
        options = {'bg': 'tan'}
        self.parent=parent
         
        self.canvas=Canvas(self,width=300,height=300,**options)
        self.canvas.grid(row=0,column=0)
The appropriate way to do this is.
import tkinter as tk

class ClassName(tk.Frame):
    def __init__(self, parent, canvas_bg=None, **kwargs):
        super().__init__(self, parent, **kwargs) 
        self.canvas=tk.Canvas(self, width=300, height=300, bg=canvas_bg)
        self.canvas.grid(row=0,column=0)

thing = ClassName(self, canvas_bg="tan", bg="yellow")
Even if you end up with dozens of keyword arguments it is far better to expose them in the argument list than to hide them in and options dictionary.
Reply


Messages In This Thread
kwargs question - by Jeff_t - Feb-15-2022, 07:25 PM
RE: kwargs question - by menator01 - Feb-15-2022, 07:45 PM
RE: kwargs question - by Jeff_t - Feb-15-2022, 08:38 PM
RE: kwargs question - by deanhystad - Feb-15-2022, 08:48 PM
RE: kwargs question - by Jeff_t - Feb-15-2022, 09:04 PM
RE: kwargs question - by deanhystad - Feb-15-2022, 09:10 PM
RE: kwargs question - by stevendaprano - Feb-16-2022, 10:59 AM
RE: kwargs question - by snippsat - Feb-16-2022, 03:31 PM
RE: kwargs question - by Jeff_t - Feb-16-2022, 04:33 PM

Possibly Related Threads…
Thread Author Replies Views Last Post
  How do I instantiate a class with **kwargs? palladium 6 7,889 Feb-16-2023, 06:10 PM
Last Post: deanhystad
  Misunderstanding kwargs? Donovan 2 2,349 Aug-04-2020, 08:09 PM
Last Post: Donovan
  **kwargs question DPaul 10 4,595 Apr-01-2020, 07:52 AM
Last Post: buran
  Unpacking dictionary from .xlsx as Kwargs etjkai 5 2,977 Dec-27-2019, 05:31 PM
Last Post: etjkai
  opts vs kwargs Skaperen 4 2,581 Nov-30-2019, 04:57 AM
Last Post: Skaperen
  create dictionary from **kwargs that include tuple bluefrog 2 5,004 Oct-26-2016, 10:24 PM
Last Post: Larz60+
  How do you use *args and **kwargs? Gengar 3 20,162 Sep-20-2016, 04:22 PM
Last Post: Ofnuts

Forum Jump:

User Panel Messages

Announcements
Announcement #1 8/1/2020
Announcement #2 8/2/2020
Announcement #3 8/6/2020