Python / PyCharm缺少参数“自我”?

时间:2018-11-23 11:14:27

标签: python pycharm

我目前正在学习Python,但我不明白我的代码有什么问题,但是PyCharm一直给我以下错误:

Traceback (most recent call last):
File "C:/Users/Sam/PycharmProjects/untitled1/app.py", line 5, in <module>
    fish1.bubbles()
TypeError: bubbles() missing 1 required positional argument: 'self'

这是我的代码:

import random
from Fish import Fish

fish1 = Fish
fish1.bubbles()

fish1.name = input("enter the name of your fish: ")
fish1.coords = ("({0},{1})".format(random.randint(1, 100), random.randint(1, 100)))

print("The fish's name is {0}, and it is swimming at co-ordinates{1}".format(fish1.name, fish1.coords))

这是我的Fish.py文件:

class Fish:

    def __init__(self, name, coords):
        self.name = name
        self.coords = coords

    def bubbles(self):
        print("{0} blew some bubbles".format(self))

任何帮助将不胜感激!

3 个答案:

答案 0 :(得分:2)

您需要调用class的构造函数,以创建该class的实例

fish1 = Fish()

在您的情况下,它将带有参数

fish = Fish("fish_name", "coordinates")

答案 1 :(得分:2)

Fish是类。您不能要求抽象的鱼起泡。您必须问一条特定的鱼(即该类的 object )。因此,假设您的鱼是“鲍勃”

bob = Fish()
bob.bubbles()

答案 2 :(得分:2)

您在Creating Instance Objects

中有错误

fish1 = Fish部分中,您没有创建实例,但是尝试使用它fish1.bubbles()

因此,请尝试将fish1 = Fish更改为fish1 = Fish(name, coords)

namecoords在构造函数中是必需的。