Why is my class undefined?
alister
alister.ware at ntlworld.com
Thu Aug 17 07:25:09 EDT 2017
On Wed, 16 Aug 2017 18:02:48 -0700, Sayth Renshaw wrote:
> On Thursday, 17 August 2017 09:03:59 UTC+10, Ian wrote:
> wrote:
>> > Morning
>> >
>> > I haven't ventured into classes much before. When trying to follow
>> > some examples and create my own classes in a jupyter notebook I
>> > receive an error that the class is undefined.
>> >
>> > So I created for practise a frog class
>> >
>> > class frog(object):
>> >
>> > def __init__(self, ftype, word):
>> > self.ftype = ftype self.word = ftype
>> >
>> > def jump(self):
>> > """
>> > Make frog jump """
>> > return "I am jumping"
>> >
>> > if __name__ == "__main__":
>> > tree_frog = frog("Tree Frog", "Ribbitt")
>> > print(frog.ftype)
>> > print(frog.word)
>> >
>> >
>> > I receive this error
>> >
>> > NameError Traceback (most recent call
>> > last)
>> > <ipython-input-1-609567219688> in <module>()
>> > ----> 1 class frog(object):
>> > 2
>> > 3 def __init__(self, ftype, word):
>> > 4 self.ftype = ftype 5 self.word = ftype
>> >
>> > <ipython-input-1-609567219688> in frog()
>> > 12 13 if __name__ == "__main__":
>> > ---> 14 tree_frog = frog("Tree Frog", "Ribbitt")
>> > 15 print(frog.ftype)
>> > 16 print(frog.word)
>> >
>> > NameError: name 'frog' is not defined
>> >
>> > what exactly am I doing wrong?
>>
>> The if __name__ == "__main__" block is inside the class declaration
>> block, so at the point that it runs the class has not been created yet.
>> Try removing the indentation to place it after the class block instead.
>
> Thank you that had me bugged I just couldn't see it.
>
> Cheers
>
> Sayth
I think you shod also print tree_frog.type not frog.type
you create the object tree_frog which is of type frog.
Although not a fault it is also recommended that classes have a capital
first letter to make them more visible*
* this is imply style guidance & not compulsory see pep8 for more detail
when you feel ready for it.
--
<Crow-> who gives a shit about US law
<jim> anyone living in the US.
More information about the Python-list
mailing list