I'm trying to brush up on my python skills, and I'm dicking around with writing classes but I seem to have run into a really confusing error. Despite importing the .py file containing my class, python is insistent that the class doesn't actually exist.
class def:
class greeter:def __init__(self, arg1=None):
self.text = arg1
def sayHi(self):
return self.text
main.py:
#!/usr/bin/pythonimport testclass
sayinghi = greeter("hello world!")
print sayinghi.sayHi()
now as far as I can tell, I have followed all the documentation down to the 't', I even initialized arguments to None because of eval time vs creation time constraints etc which seemed to be a problem with some people, I have made sure init is the first function defined as well still to no avail, although I have a theory that the import is not working as it should.... Any help would be much appreciated.
Use the fully-qualified name:
sayinghi = testclass.greeter("hello world!")
There is an alternative form of import
that would bring greeter
into your namespace:
from testclass import greeter
import testclass
# change to
from testclass import greeter
or
import testclass
sayinghi = greeter("hello world!")
# change to
import testclass
sayinghi = testclass.greeter("hello world!")
You imported the module/package, but you need to reference the class inside it.
You could also do this instead
from testclass import *
but then beware of namespace pollution