[英]Why does this python method gives an error saying global name not defined?
[英]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 嗎? 我不確定這是上課的習慣,但我是新手,所以我不知道。
您的代碼不起作用的原因有兩個:
self.centroid = __getCentroid()
僅當__getCentroid()
function 將在 class 之外聲明時才有效。 如果它在 class 內,你應該調用self.__getCentroid()
__getCentroid()
是一個 static 方法,無法訪問 class 或實例屬性。 所以你無權訪問self.*something*
。 如果您使用 IDE 之類的 Pycharm,則會顯示錯誤。只需在 python 中閱讀更多關於類、它們的屬性和方法的信息:)
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.