class SchoolOfFish:
def __init__(self, position, fish_class=Fish, number_of_fish=1):
self.position = position
self.timer = 0
self.list_of_fish = []
for i in range(number_of_fish):
self.list_of_fish.append(fish_class(screen.size / 2))
class SchoolOfFish:
def __init__(self, position, number_of_fish=1):
self.position = position
self.timer = 0
self.list_of_fish = []
for i in range(number_of_fish):
self.list_of_fish.append(Fish(screen.size / 2))
这两个类的作用是相同的,即用前一个类“fish”的实例填充SchoolOfFish.list\ of\ u fish。在第一个例子中包含变量“fish\ u class”有好处吗? 另外,我还找不到关于将classinit方法中的默认值设置为参数的Python文档。你能给我解释一下这是怎么回事吗
它允许您将
SchoolOfFish
类与其他类型一起使用,而不仅仅是硬编码的Fish
在上面的示例中,默认值是
Fish
,但是当调用构造函数时,可以在运行时指定另一个类编辑re:默认参数:
关于
__init__
中的默认参数,它在概念上与为任何其他方法/函数中的参数设置默认值没有任何区别。只需指定x=y
,其中x
是参数名,y
是其默认值大概你可以初始化不同种类的鱼
提供的两个构造函数都提供了一个默认值,如果未指定
fish_class
,则默认为构造泛型Fish
的列表但是,
fish_class
允许您指定某类鱼例如,您可能希望初始化一个
Baracuda
学校或Snapper
学校,这两个学校都是泛型Fish
类的子类(实际上,代码中没有任何东西可以确保
fish_class
实际上是一个Fish
类,您可以用fish_class = Dog
调用构造函数)相关问题 更多 >
编程相关推荐