请问如何调用类中定义的无参的方法?是不是这样的方法本来就不能调用?
[color=blue]# 在类中定义一个无参的方法 method()[/color]
[code="python"]
class clazz:
def method():
print m
[/code]
[color=blue]直接调用[/color]
[code="python"]
clazz.method()
Traceback (most recent call last):
File "", line 1, in
clazz.method()
TypeError: unbound method method() must be called with clazz instance as first argument (got nothing instead)
[/code]
[color=blue]先实例化,再调用[/color]
[code="python"]
c = clazz()
c.method()
Traceback (most recent call last):
File "", line 1, in
c.method()
TypeError: method() takes no arguments (1 given)
[/code]
[color=blue]这样也不行[/color]
[code="python"]
clazz.method(c)
Traceback (most recent call last):
File "", line 1, in
clazz.method(c)
TypeError: method() takes no arguments (1 given)
[/code]
楼主
class clazz:
def method():
print m
你这样定义,除非通过类似于JAVA的反射机制来调用,否则没办法。
楼主如果要坚持这样写,可以稍微这样改造下:
//静态方法
class clazz:
@staticmethod
def method():
print m
//类方法
class clazz:
@classmethod
def method():
print m
我写了一篇这方面的文章,楼主不妨参考下
http://bestchenwu.iteye.com/blog/1048395
class Person:
def sayHi(self):
print 'Hello, how are you?'
p = Person()
p.sayHi()
self 跟java里面的this差不多