【问题标题】:Parameter self unfilled, but when I fill it it gives expected type ' ' but got 'Type[]' warning参数自未填充,但是当我填充它时,它给出了预期的类型''但得到了'Type []'警告
【发布时间】:2022-01-16 12:06:51
【问题描述】:
  class Player:

   def __init__(self):
       self.godHole = GodHole
       self.pits = []
       for i in range(0, 6):
           self.pits.append(Pit())

   def return_stones(self):
       return self.godHole.return_stones(self.godHole)
      #or return self.godHole.return_stones()
      # same warning for invoking seld.godHole.increment_stones()

class GodHole:

   def __init__(self):
       self.stones = 0

   def return_stones(self):
       return self.stones

   def change_stones(self, s):
       self.stones = s

   def increment_stones(self):
       self.stones += 1


当使用注释行时,我会收到自我未填充的警告。当我使用第一个时,我得到了预期的类型 ' ' 但得到了 'Type[]' 警告

我做错了什么?如何填写 self 参数?我什至可以通过这种方式访问​​实例属性吗?

【问题讨论】:

  • 您的代码包含一些错误,但首先您必须提供使用它的示例、预期结果以及触发错误的位置(以及错误消息)。

标签: python oop pycharm


【解决方案1】:

类Player的属性godHole,它只是一个类,并没有进行实例化操作,你直接使用下面的实例方法return_stones,传入类GodHole,这是错误的.

实例方法有两种执行方式:

  1. 直接使用类实例调用
  2. 当类使用实例方法时,实例作为参数传入
class Player:

   def __init__(self):
       self.godHole = GodHole()
       self.pits = []
       for i in range(0, 6):
           self.pits.append(Pit())

   def return_stones(self):
       return self.godHole.return_stones()

或

class Player:

   def __init__(self):
       self.godHole = GodHole
       self.pits = []
       for i in range(0, 6):
           self.pits.append(Pit())

   # def return_stones(self):
       # return self.godHole.return_stones(self.godHole())

   def return_stones(self, obj: GodHole):
       # obj is an instance object of class GodHole
       return self.godHole.return_stones(obj)

【讨论】:

    猜你喜欢
    • 2013-01-19
    • 1970-01-01
    • 1970-01-01
    • 2023-03-14
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多