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

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

Python 類定義中的“實現”是什么意思?

Python 類定義中的“實現”是什么意思?

函數式編程 2021-10-05 16:15:52
下面的代碼示例來自 BeeWare 套件示例。(https://github.com/eliasdorneles/drawingapp-voc/blob/master/drawingapp/app.py)表達implements=android.view.View[OnClickListener]是什么意思?應該有(一個列表)基類。是我無法理解的框架或標準 python 的一些不兼容的特殊語法(并且在文檔中遺漏了)?此外,我們在OnClickListener這里使用的是從未導入的。在類似android.Constants.OnClickListener或類似的符號之前沒有通配符導入 (*) 和模塊前綴。OnClickListener在這種情況下,Python 解釋器如何找到值?import androidfrom android.widget import LinearLayout, TextView, Buttonimport android.content.Contextfrom android.graphics import Bitmap, Canvas, Color, Paint, Path, PorterDufffrom android.view import MotionEvent, Gravityimport android.viewclass ButtonClick(implements=android.view.View[OnClickListener]):    def __init__(self, callback, *args, **kwargs):        self.callback = callback
查看完整描述

2 回答

?
慕桂英3389331

TA貢獻2036條經驗 獲得超8個贊

Python 的類定義語法使您可以keyword=value像使用基類一樣多地使用條目。默認情況下metaclass=...有意義,并且在使用時__init_subclass__,其他此類關鍵字參數將傳遞給該方法。所以implements=從語法的角度來看,在類定義中使用是好的。

請注意,BeeWare不在Android 上運行 Python,它使用名為 VoC的轉譯器將 Python 代碼轉換為 Java。類中的implements=關鍵字參數用于讓您在 Python 代碼中定義 Java 接口。據推測,像這樣的附加名稱OnClickListener是可用的,因為 VoC 使它們可用。

VoC 將 Python 字節碼轉換為 Java,因此兼容 BeeWare 的 Python 必須實現的只是正確的 Python 語法。諸如NameErrors 之類的運行時問題不一定是問題,這是 Java 翻譯器可以彌補的。


查看完整回答
反對 回復 2021-10-05
  • 2 回答
  • 0 關注
  • 282 瀏覽
慕課專欄
更多

添加回答

舉報

0/150
提交
取消
微信客服

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

幫助反饋 APP下載

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

公眾號

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