參見英文答案 >
How do you call a private module function from inside a class?????????????????????????????????????1個
我用谷歌搜索了一堆,似乎無法弄清楚如何實際做到這一點:
鑒于我有一個通用的實用方法,如下所示:
def __square(n):
python import函數。return n*n
然后我有一些類我可能想在內部使用這個方法:
def __square(n):
return n*n
class Foo:
def __init__(self):
python的類怎么調用?self.baz = 2
def bar(self):
return self.baz + __square(self.baz)
嗯,這不起作用.我得到NameError’_Foo__square’沒有定義
為什么?
作為一種解決方法,我最終做了這樣的事情:
python內置模塊。class Foo:
def __init__(self):
self.baz = 2
def bar(self):
return baz + self.square(self.baz)
def square(self,n):
python類中的方法、return n*n
但這對我來說很愚蠢,因為square函數與Foo實例無關,我也不期望或希望它成為Foo實例上的方法.
什么是處理這種事情的“pythonic”方式?
編輯
我想出了至少一部分:我得到了這種行為,因為我認為這些實用程序方法是私有的,我一直在命名它們像def __square(n):.
我沒有意識到這是特別的,當鍵入上面的例子時,我最初沒有這樣輸入.我現在編輯了這個問題,以反映它實際輸入的方式.
python中調用什么模塊的什么函數、所以現在我的問題是:為什么將__置于頂級方法之前打破它,或者似乎?我理解這是在Python中命名“私有事物”的慣例,因為它在這種情況下不起作用,你會推薦什么呢?
版权声明:本站所有资料均为网友推荐收集整理而来,仅供学习和研究交流使用。
工作时间:8:00-18:00
客服电话
电子邮件
admin@qq.com
扫码二维码
获取最新动态