Setash a écrit :
> I've got a tiny bit of coding background, but its not the most
> extensive.
>> That said, I'm trying to wrap my head around python and have a couple
> questions with classes and functions.
>> Two notable questions:
>> 1) Classes. How do you extend classes?
>> I know its as easy as:
>> class classname(a)
> do stuff
>>> But where does the parent class need to lie? In the same file? Can it
> lie in another .py file in the root directory? Can it simply be
> accessed via an import statement or just plain jane?
>> To clarify, as it may be worded poorly:
>> Can my directory structure look like
>> ..
> /class1.py
> /class2.py
>> And have class2 inherit class1 without any import statements, or need
> it be imported first?
> Or need class1 and class2 be both declared in the same .py file if
> there is inheritance?
>> I think thats a bit more clear :)
>
Any object you want to access must be bound to a name in the current
namespace. So you either need to define both classes in the same module
(ie: file), or import the base class. There are some things about this
in the tutorial...
>>> 2) Function overloading - is it possible?
>> Can I have the following code, or something which acts the same in
> python?:
>>> def function(a, b)
> do things
>> def function(a, b, c)
> do things only if I get a third argument
>
There's no proper function overloading builtin Python [1]. But you have
default params:
def function(a, b, c=None):
if c is None:
do things
else:
do things only if I get a third argument
[1] this could be implemented - and is actually implemented (in much
more powerful way) by Philip Eby's dispatch module.
> Any thoughts / comments / etc? Just trying to get a solid foundation of
> python before going any further.
Then you might want to (re ?)read the tutorial and DiveIntoPython.