Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/322.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python中生成器模式的问题_Python_Pygame_Builder - Fatal编程技术网

Python中生成器模式的问题

Python中生成器模式的问题,python,pygame,builder,Python,Pygame,Builder,我想从同一个基类Fish创建一个用户Fish和敌人Fish。但是,正如我所了解的,当我尝试更改敌方鱼类属性时,使用下面的代码,我的用户鱼类属性最终也会更改: #基类 类鱼(对象): 定义初始化(self,type=“None”,大小=(1,1),位置=(1,1),速度=1, 方向=1): self.type=type self.size=大小 self.position=位置 自身速度=速度 方向 def牵引(自): 引发未实现的错误 #用户鱼生成器:生成新的用户鱼 类创建用户鱼(鱼): Fis

我想从同一个基类Fish创建一个用户Fish和敌人Fish。但是,正如我所了解的,当我尝试更改敌方鱼类属性时,使用下面的代码,我的用户鱼类属性最终也会更改:

#基类
类鱼(对象):
定义初始化(self,type=“None”,大小=(1,1),位置=(1,1),速度=1,
方向=1):
self.type=type
self.size=大小
self.position=位置
自身速度=速度
方向
def牵引(自):
引发未实现的错误
#用户鱼生成器:生成新的用户鱼
类创建用户鱼(鱼):
Fish.type=“用户”
Fish.size=(150100)
Fish.position=(20200)
def牵引(自):
pygame.draw.ellipse(DISPLAYSURF,蓝色,(Fish.position,Fish.size))
#敌人鱼制造者:生成新的敌人鱼
类创建敌人鱼(鱼):
Fish.type=“敌人”
Fish.size=(150100)
鱼的位置=(750200)
def牵引(自):
pygame.draw.ellipse(DISPLAYSURF,蓝色,(Fish.position,Fish.size))
#我在运行游戏前打的电话片段
Player=创建用户鱼()
Player.draw()

当我更改类
创建敌人鱼
下的
Fish.position
时,这也会更改我的
用户
鱼的
Fish.position
。提示?

对象
Fish
中的属性,如
self.type
self.size
是,但是类
Fish
中还有其他设置,如
Fish.type
Fish.size
。。。(这些属性的分配分别在after
类Create\u User\u Fish
中完成。类属性在类
Fish
中只存在一次,第二次写入将覆盖第一次写入

您必须分别向类
Create\u User\u Fish
中添加构造函数
Create\u four\u Fish
,并对继承类的构造函数
Fish
执行一个操作,以设置实例属性。使用方法
绘图中的实例属性:

类创建用户鱼(鱼):
定义初始化(自):
super().uuuu init_uuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuu
def牵引(自):
pygame.draw.ellipse(DISPLAYSURF,蓝色,(self.position,self.size))
类创建敌人鱼(鱼):
定义初始化(自):
super().uuuu init_uuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuu
def牵引(自):
pygame.draw.ellipse(DISPLAYSURF,蓝色,(self.position,self.size))

Fish
Fish
。实际上,在
Create\u User\u Fish
Create\u敌军\u Fish
中都没有设置类级属性。这些简单的assgnment语句修改了
Fish
类属性,不会影响它们在所有类块中执行的类名称空间。@juanpa.arrivillaga哦,我明白你的意思了。我已经改变了。