best way to get data into a new instance?

Diez B. Roggisch deets at nospam.web.de
Thu Sep 28 10:46:57 EDT 2006


John Salerno schrieb:
> Let's pretend I'm creating an Employee class, which I will later 
> subclass for more specific jobs. Each instance will have stuff like a 
> name, title, degrees held, etc. etc.
> 
> So I'm wondering, is the best way to get all this information into the 
> object to just have a really long __init__ method that takes each argument?
> 
> Does a question like this depend on how the class will be used? I'm 
> trying to construct it in a way that is independent of, say, the GUI 
> interface that will be used, but I can't help but think that if all the 
> data is entered into a GUI, then passed programmatically to the class, 
> then it's no big deal because it happens behind the scenes. But if, for 
> instance, someone manually created a new instance, they would have a ton 
> of arguments to type in each time. Granted, even with the GUI they are 
> basically typing in arguments, but in the manual case you'd have to type 
> in the call to the class, the parentheses, commas, quotes around the 
> strings, etc. (But still, I'm trying not to let a specific interface 
> influence the construction of what should probably be a completely 
> independent class implementation.)

Who is typing?

The programmer is responsible for the construction of new instances (or 
at least the code which will do that), and a constructor should contain 
parameters for at least the values you absolutely expect to be there - 
for example name and age or something like that in your example.

You can of course always add attributes later.

Diez



More information about the Python-list mailing list