When I made the code in Faicham, they automatically put self
on it
Why are you doing this?
I wonder what role self
plays, so if you take out self
, there will be an error.
class Test(object):
def method_one(self):
print "Called method_one"
def method_two(): #The red line here...
print "Called method_two"
a_test = Test()
a_test.method_one()
a_test.method_two() ##Not allowed
The side with self attached is called bound, and the side without it is called unbound method.
Usually, when calling a member function, the bound function method_one()
is called
a_test.method_one()
Silver
Test.method_one(a_test)
It is converted to . Therefore, TypeError
occurs for the unbound function.
>>> a_test = Test()
>>> a_test.method_two()
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
TypeError: method_two() takes no arguments (1 given)
If you watch method_two()takes no arguments (1 give)
over there,
self
should be in the role of accepting a_test
, but there are too many factors because self
is missing.
If you don't want to write self
, you can use a decorator to set "This method method_two
to not create a bound method."
class Test(object):
def method_one(self):
print "Called method_one"
@staticmethod
def method_two():
print "Called method two" #Error gone
© 2024 OneMinuteCode. All rights reserved.