亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

na separate class 為什么在那個構造函數中接受一個類的實例會導致沒有語句效果錯誤?

na separate class 為什么在那個構造函數中接受一個類的實例會導致沒有語句效果錯誤?

MYYA 2023-03-08 09:57:52
我正在創建一個國際象棋游戲,我決定在其中實現兩個類,一個抽象類擴展到各種抽象操作(Pawn、King、Queen、Rook、Knight、Bishop)的棋子類,每個棋子都將放在一個地方. spot 類表示 8x8 網格的一個塊和一個可選塊。在我的 spot 類中,我在構造函數中接受了 piece 類的一個實例,但我收到錯誤“No statement effect errors”。我不確定為什么?class Spot:    def __init__(self, x, y,Piece piece):        self.x = x        self.y = y        self.piece = piececlass Piece:    killed = False    white = False    def __init__(self, white,killed):        self.white = white        self.killed = killed    def iswhite(self):        return self.white == True    def iskilled(self):        return self.killed == True
查看完整描述

1 回答

?
大話西游666

TA貢獻1817條經驗 獲得超14個贊

在 Python 中,您不需要像在 Java、C#、C++ 等中那樣聲明參數的類型。Python 是動態類型的,因此解釋器會在運行時找出您傳遞的對象。


更改您的代碼如下:


class Spot:

    def __init__(self, x, y, piece):

        self.x = x

        self.y = y

        self.piece = piece

如果你真的想指定數據類型,你可以使用 Python 的一個功能,稱為類型提示,如下所示:


class Spot:

    def __init__(self, x: int, y: int, piece: Piece):

        self.x = x

        self.y = y

        self.piece = piece

其他一些指示:


您不需要使用比較布爾運算符x == True,您可以簡單地返回布爾變量x,這將具有相同的效果。

你應該在 Python 中始終使用 snake_case,而is_white不是iswhite.

您不需要Piece像那樣初始化類中的變量。您可以__init__直接使用默認參數在方法中執行此操作。因此,如果用戶未提供參數,則默認值將用于該參數。

class Piece:


    def __init__(self, white=False, killed=False):

        self.white = white

        self.killed = killed


    def is_white(self):

        return self.white


    def is_killed(self):

        return self.killed


查看完整回答
反對 回復 2023-03-08
  • 1 回答
  • 0 關注
  • 111 瀏覽
慕課專欄
更多

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號