0

以下のコードを入力しようとすると[None, None]、予想ではなくコンソールに出力され、[3, 3]これを修正するのに何が役立つのか疑問に思っていました.

class Blah(object):
    def track(self,dot):
      self.dot = dot


class Second(Blah):
  def __init__(self,arg):
    self.blocky = []
      x = 0
       while x < 2:
         self.blocky.append(Blah.track(self,arg))
          x += 1

bleh = Second(3)
print bleh.blocky
4

3 に答える 3

0

Blah.trackreturnにはステートメントがないため、 が返されますNone

これを修正するには、次のようにします。

class Blah(object):
  def track(self, dot):
    self.dot = dot
    return dot

また、はのサブクラスであるため、Blah.track(self, dot)単に を呼び出すことができるときに を呼び出しています。self.track(dot)selfSecondBlah

それは次のようになります。

class Second(Blah):
  def __init__(self,arg):
    self.blocky = []
    x = 0
    while x < 2:
       self.blocky.append(self.track(arg))
       x += 1
于 2013-10-18T20:43:26.140 に答える
0

track メソッドは何も返しません。おそらくあなたはこれを意味しましたか?

def track(self, dot):
    self.dot = dot
    return dot

また、 Second は Blah を継承しているため、置き換えることができます

Blah.track(self, arg)

self.track(arg)
于 2013-10-18T20:43:39.737 に答える