返回*类名*

时间:2014-02-01 17:09:44

标签: python

在python中,返回类名的方法意味着什么?

我的意思是假设你有两个班级:

class TestClass:
    def __init__(self, board=[]):
        """(TestClass, int) -> NoneType
        """
        self.board = [(0, [5,4,3,2,1]), (1, []), (2, []), (3, [])]

    def top_coin(self, idx):
        """(TestClass, int) -> Coin

        Return's a Coin.

        """
        if not self.board[idx][1]:
            return None
        return self.board[idx][1][-1]

class Coin:

    def __init__(self, length):
        """(Coin, int) -> NoneType

        >>> c = Coin(3)
        >>> c.length
        3

        """
        self.length = length

    def __repr__(self):
        """(Coin) -> str
        """
        return "Coin(" + str(self.length) + ")"    

并且您希望类TestClass中的方法top_coin返回一个Coin。这是否意味着它应该与Coin类一起回归?所以在做的时候

t1 = TestClass()
t1.top_coin(0)
Coin(1) ??

1 个答案:

答案 0 :(得分:2)

这意味着您必须返回Coin类型的实例。例如:

class TestClass:
    ...
    def top_coin(self, size):
        ...
        return Coin(3) # you may change the parameter '3'

因此,当您调用该方法时,可以将其存储为Coin类型的变量:

a_coin = t1.top_coin(0)

此外,在课程__init__的{​​{1}}方法中,您尚未声明Coin。这会导致错误。