不管命名约定是什么类的一部分,它只是一个测试运行。你知道吗
我需要一些关于OOP继承的帮助,我创建了一个由学生、老师和校长组成的类。我的目标是让校长能够增加员工。问题是我只想使用for循环来获取名称,然后将该方法作为主体对象的属性传递。我可以在没有self参数的情况下使用类输入来完成它。有人能告诉我吗 这里发生了什么,我怎么能用self来解决这个问题。我删除了名字中的输入,这样我的问题就不会被关闭
class Input:
def count():
cnt = []
for i in range(4):
name = ('Enter name here: ')
cnt.append(name)
return cnt
class Student:
def __init__(self,name,lastname):
self.name = name
self.lastname = lastname
class StudentCouncil(Student):
def __init__(self, name, lastname, tenure):
super().__init__(name,lastname)
self.tenure = tenure
class Principal(StudentCouncil):
def __init__(self, name, lastname, tenure,employees=None):
super().__init__(name,lastname,tenure)
if employees is None:
self.employees = []
else:
self.employees = employees
def display(self):
for names in self.employees:
print(names,end=' ')
count = Input.count()
tij = Principal('Mike','Thoma','3',count)
tij.display()
如果
count
是Input
的全部内容,只需将其设置为函数:如果您想要某种类型的可配置输入类型,那么您想要在其实例上运行
count
,您需要self
:否则,做这件事的犹太方式是使用
staticmethod
装饰器:当前代码将与当前使用的代码一样工作,
Input.count()
,但如果实例化输入,Input().count()
将引发异常。staticmethod
修饰符确保这个方法可以安全地直接调用类或该类的实例。你知道吗如果方法采用
self
参数,则需要创建类的实例。所以应该是:然后你会做:
您的
count()
方法没有使用self
的任何属性,因此目前不需要这样编写。但你可能想重新定义它如下:相关问题 更多 >
编程相关推荐