我对python很陌生,我要学习的一件困难的事情是如何正确地使用self。我的理解是我们应该用自己的方法。但是我有一个方法的类,我得到一个类型错误,说我缺少位置参数self。
class example():
list1 = ['a','b','c','d']
list2 = ['1','2','3','4']
def func1(self, list1, list2):
i = 1
for item in list1:
print(list1)
print(list2[i])
i +=1
func1(list1=list1, list2=list2)
#error seen below
<ipython-input-2-d17d317756a0> in <module>()
----> 1 class example():
2
3 list1 = ['a','b','c','d']
4 list2 = ['1','2','3','4']
5
<ipython-input-2-d17d317756a0> in example()
11 print(list2[i])
12
---> 13 func1(list1=list1, list2=list2)
TypeError: func1() missing 1 required positional argument: 'self'
如果您试图在类之外调用
func1
:如果要在类中使用
func1
功能:或者,如果列表的长度相同,则func可以是:
我不是python专家,但请尝试下面的方法,它可能会帮助您
您定义为
func1
的函数是method。需要在该类的实例上使用。例如这里
self
表示abc
。如果要在类中调用它,则需要使用self本身,如果在外部调用,self将替换为实例名。
编辑:在这种情况下,可以使用静态方法。
然而,您应该意识到,这并不比创建一个全局函数好多少。所以我建议你找到一种方法来使用我推荐的第一种方法。
相关问题 更多 >
编程相关推荐