簡體   English   中英

訪問 class 中的私有方法會給出名稱錯誤,說明它未定義

[英]Accessing a private method within a class is giving a name error saying it is not defined

我正在使用此方法創建一個 class,該方法根據坐標計算給定區域的質心。 到目前為止,這是我的代碼 而且我在 jupyter notebook 中遇到了這個錯誤: NameError: name '_Lot__getCentroid' is not defined 我究竟做錯了什么? 我正在嘗試遵循給我的這個 UML。 我應該在初始化之前先移動方法 getCentroid 嗎? 我不確定這是上課的習慣,但我是新手,所以我不知道。 UML

您的代碼不起作用的原因有兩個:

  1. self.centroid = __getCentroid()僅當__getCentroid() function 將在 class 之外聲明時才有效。 如果它在 class 內,你應該調用self.__getCentroid()
  2. __getCentroid()是一個 static 方法,無法訪問 class 或實例屬性。 所以你無權訪問self.*something* 如果您使用 IDE 之類的 Pycharm,則會顯示錯誤。

只需在 python 中閱讀更多關於類、它們的屬性和方法的信息:)

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM