鱼C论坛

 找回密码
 立即注册
查看: 1889|回复: 1

[已解决]救命啊大佬们,为什么是这个错误

[复制链接]
发表于 2021-4-21 00:11:52 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能^_^

您需要 登录 才可以下载或查看,没有账号?立即注册

x
import random as r
class Turtul :
    def _init_(self,x,y) :
        self.x=0
        self.y=0
    def position(self) :
        self.x=r.randint(0,10)
        self.y=r.randint(0,10)
    def move(self) :
        self.x +=1
        self.y +=1
        print('现在本乌龟跑到了这里',(self.x,self.y))

class Fish :
    def _init_(self,x,y) :
        self.x=0
        self.y=0
    def position1(self):
        self.x=r.randint(0,10)
        self.y=r.randint(0,10)
    def move(self) :
        self.x +=1
        self.y +=1

class Nihao :
    def _init_(self,x,y) :
        self.turtul=Turtul(x,y)
        self.fish=Fish(x,y)
    def miss(self) :
        if (self.fish.x,self.fish.y) != (self.turtul.x,self.turtul.y) :
            a=True
            b=10
            while a :
                b -= 1
                if b>0 :
                    self.turtul.position()
                    self.turtul.move()
                else :
                    print('完了,完了,没能量了。。。。')
                    break
        else :
            print('我们在这里相遇')
            


v=Nihao()
v.miss()


#错误:
        Traceback (most recent call last):
  File "D:/python(学习站)/d.py", line 48, in <module>
    v.miss()
  File "D:/python(学习站)/d.py", line 30, in miss
    if (self.fish.x,self.fish.y) != (self.turtul.x,self.turtul.y) :
AttributeError: 'Nihao' object has no attribute 'fish'
最佳答案
2021-4-21 01:37:10
大哥,我要提醒你一下 在class中的 __init__()方法是双下划线而不是单下划线
你所有的类都是如此 把你的 _init_ 改成__init__就好了

当然你的程序也有其他的问题.比方说 v=Nihao() 这里 你在定义Nihao这个类的__init__()方法时,需要传入 x 和 y 这两个参数,但是实际上你都没传
所以在创建 v 这个对象的时候就会报错 需要你传参 还有就是
因为你没传参数,所以会导致你在
self.turtul=Turtul(x,y)
self.fish=Fish(x,y)
这里也会报错,因为你没有传x 和 y 所有也就没法创建 self.turtul 和 self.fish 这两个对象
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2021-4-21 01:37:10 | 显示全部楼层    本楼为最佳答案   
大哥,我要提醒你一下 在class中的 __init__()方法是双下划线而不是单下划线
你所有的类都是如此 把你的 _init_ 改成__init__就好了

当然你的程序也有其他的问题.比方说 v=Nihao() 这里 你在定义Nihao这个类的__init__()方法时,需要传入 x 和 y 这两个参数,但是实际上你都没传
所以在创建 v 这个对象的时候就会报错 需要你传参 还有就是
因为你没传参数,所以会导致你在
self.turtul=Turtul(x,y)
self.fish=Fish(x,y)
这里也会报错,因为你没有传x 和 y 所有也就没法创建 self.turtul 和 self.fish 这两个对象
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

小黑屋|手机版|Archiver|鱼C工作室 ( 粤ICP备18085999号-1 | 粤公网安备 44051102000585号)

GMT+8, 2025-1-16 01:45

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

快速回复 返回顶部 返回列表