如何在Python中的一个类方法中声明两个相同类型的参数:
class A(object):
def test(self):
print("I am A")
class B(object):
def test(self, A): #def test(self, A, A): -> of course doesn't work
A.test()
a1 = A()
a2 = A()
b = B()
b.test(a1)
#b.test(a1, a2)
答案 0 :(得分:2)
我不确定你的目的是什么,但是:
class A(object):
@classmethod
def test(cls):
print ("I am %s" % cls.__name__)
class B(object):
def test(self, *args):
for arg in args:
arg.test()
应该有用......
另请注意,B.test
根本不使用self
,它可能是staticmethod
,但在使用静态方法时会采用通常的建议(问问自己是否有优势)使用静态方法而不仅仅是模块级功能。)
答案 1 :(得分:2)
您不必使用A
作为参数名称。您可以使用任何名称。例如a1
和a2
:
class A(object):
def test(self):
print("I am A")
class B(object):
def test(self, a1, a2):
a1.test()
a2.test()
a1 = A()
a2 = A()
b = B()
b.test(a1, a2)
你写了类方法。这些是Python中的特殊方法。您在示例中使用的常规方法称为实例方法或简称方法。