作为属性的实例(类型错误位置参数)
Instances as attributes (type error positional argument)
我一直在努力克服错误:
我有一个 child class,其中有一个实例作为属性。属性 self.admin_privileges
应该将 Python 带到 Privileges
class 然后打印出归因于 self.privileges
.
的列表
但是,当我拨打电话时 fortesque.admin_privileges.show_privileges()
我收到类型错误:
missing 1 required positional argument: 'privileges'
这是我的代码的图片:
在您的 class 中,只需将 def __init__(self, privileges):
替换为 def __init__(self):
,因为您已经在 __init__
函数中定义了 privileges
列表。
在您的代码示例中,您有一个看起来像这样的 class 定义:
class Privleges():
def __init__(self, privleges):
self.privleges = ['can do something']
class Admin():
def __init__(self):
self.privleges = Privleges()
问题是“权限”class 需要用您的初始化函数定义的参数“权限”进行实例化。
对于您的管理员 class 您在实例化新管理员时不需要任何此类参数,如初始化函数所示,它只接受“自我”,没有任何额外的。
要解决此问题,您可能需要从“特权”class 的初始化函数中删除“特权”,因为它是由初始化函数设置的。
class Privileges():
def __init__(self):
self.privileges = ['can do something']
然而,另一种选择是创建一个默认的权限列表,同时还允许管理员 class 能够覆盖该值。看起来像这样。
class Privileges():
def __init__(self, privileges=['can do the default action']):
self.privileges = privileges
class Admin():
def __init__(self):
self.privileges = Privileges(['can do Admin Stuff'])
class NotAnAdmin():
def __init__(self):
self.privileges = Privileges() # gets the default
我一直在努力克服错误:
我有一个 child class,其中有一个实例作为属性。属性 self.admin_privileges
应该将 Python 带到 Privileges
class 然后打印出归因于 self.privileges
.
但是,当我拨打电话时 fortesque.admin_privileges.show_privileges()
我收到类型错误:
missing 1 required positional argument: 'privileges'
这是我的代码的图片:
在您的 class 中,只需将 def __init__(self, privileges):
替换为 def __init__(self):
,因为您已经在 __init__
函数中定义了 privileges
列表。
在您的代码示例中,您有一个看起来像这样的 class 定义:
class Privleges():
def __init__(self, privleges):
self.privleges = ['can do something']
class Admin():
def __init__(self):
self.privleges = Privleges()
问题是“权限”class 需要用您的初始化函数定义的参数“权限”进行实例化。
对于您的管理员 class 您在实例化新管理员时不需要任何此类参数,如初始化函数所示,它只接受“自我”,没有任何额外的。
要解决此问题,您可能需要从“特权”class 的初始化函数中删除“特权”,因为它是由初始化函数设置的。
class Privileges():
def __init__(self):
self.privileges = ['can do something']
然而,另一种选择是创建一个默认的权限列表,同时还允许管理员 class 能够覆盖该值。看起来像这样。
class Privileges():
def __init__(self, privileges=['can do the default action']):
self.privileges = privileges
class Admin():
def __init__(self):
self.privileges = Privileges(['can do Admin Stuff'])
class NotAnAdmin():
def __init__(self):
self.privileges = Privileges() # gets the default