我对python中的OOP还比较陌生,我正在编写一个小程序让我开始学习。问题是,当我创建一个对象时,无论我使用多少个位置参数,我似乎在参数数量上有一个错误。你知道吗
由于我对这个编程领域还比较陌生,我不太确定该尝试什么,但是我尝试过使用属性初始化阶段,但是,这会完全禁用程序。你知道吗
import random
class character:
def __init__(self, name, skill, brains, home, strength, force):
self.name = name
self.skill = skill
self.brains = brains
self.home = home
self.strength = strength
self.force = force
class force_user(character):
def __init__(self, name, skill, brains, home, strength, force, dark_force, light_force):
super().__init__(self, name, skill, brains, home, strength, force)
self.dark_force = dark_force
self.light_force = light_force
class jedi(force_user):
def __init__(self, name, skill, brains, home, strength, force, dark_force, light_force, master, rank):
super().__init__(self, name, skill, brains, home, strength, force, dark_force, light_force)
self.master = master
self.rank = rank
a = jedi('Yoda', 46, 17, 'Dagobah', 34, 97, 2, 10, "N'Kata Del Gormo", 'Grand Master')
当我在对象“a”中有'Grand Master'
“rank”参数时,我收到以下消息:
Traceback (most recent call last):
File [file directory], line 37, in <module>
a = jedi('Yoda', 46, 17, 'Dagobah', 34, 97, 2, 10, "N'Kata Del Gormo", 'Grand Master')
File [file directory], line 32, in __init__
super().__init__(self, name, skill, brains, home, strength, force, dark_force, light_force)
TypeError: __init__() takes 9 positional arguments but 10 were given
当我删除'Grand Master'
参数时,我收到以下错误:
Traceback (most recent call last):
File [File Directory, line 37, in <module>
a = jedi('Yoda', 46, 17, 'Dagobah', 34, 97, 2, 10, "N'Kata Del Gormo")
TypeError: __init__() missing 1 required positional argument: 'rank'
我自己也不太明白这个问题,但是任何帮助或建议都太好了!你知道吗
你应该改变
至
使用非静态实例方法时,不需要传递
self
(第一个参数)。你知道吗更清楚的是:如果在
jedi
中有这个方法你可以简单地用
a.printName()
来称呼它,而不是a.printName(a)
。你知道吗相关问题 更多 >
编程相关推荐