Python Class Can't Find Attribute
Solution 1:
You are getting confused by the error here. You get an AttributeError
for self.Ssock
because you do not have an instance.
You only created a reference to the class here:
straussbot = StraussBot
You need to call the class to produce an instance:
straussbot = StraussBot()
You are also mixing tabs and spaces:
Note how lines 5 through 9 have lines in the indentation, but the rest have dots? Those are tabs, and Python sees those as 8 spaces. So your connectSock
method is indented inside of __init__
and not seen as a method on StrausBot
.
You'll have to stick to either just tabs or just spaces. Python's styleguide strongly recommends you use spaces only.
Solution 2:
You forgot to instantiate an object of your class StraussBot
.
straussbot = StraussBot
just assigns the name straussbot
to refer to the class StraussBot
. Change that line to
straussbot = StraussBot()
to actually create an instance of your class. You can then call the connectSock
method on that instance as expected.
Solution 3:
You've mixed tabs and spaces. You might think your StraussBot
class has a connectSock
method, but you actually put the definition of connectSock
nested inside the __init__
method.
Turn on "show whitespace" in your editor to see the problem. There's probably a "convert tabs to spaces" option you can use to autofix it. Running Python with the -tt
option will make Python notify you when something like this happens.
Also, you'll need to actually create an instance of StraussBot
, rather than just setting straussbot
to the class itself: straussbot = StraussBot()
.
Post a Comment for "Python Class Can't Find Attribute"