[英]How to access a local object inside a class method in a module?
我試圖訪問模塊中類中的局部變量。 到目前為止,我只能在模塊本身內部調用時訪問它,而不是作為導入。
這是我唯一一次成功檢索“coisa”的嘗試。 有沒有更簡單的方法來調用它?
class Hello():
def MyObject():
coisa = 22
return coisa
link = Hello.MyObject()
print(link)
但這就是我試圖真正克服的情況。 導入模塊並訪問其中的類和函數的對象。 主文件
import Module
link = Module.Hello.MyObject()
print(link)
模塊.py
coisa = "67"
class Hello():
def MyObject():
coisa = "22"
return coisa
如果coisa
var 在函數中定義,則不能直接訪問它,因為它是局部變量。
在coisa
將在您的函數之外定義的假設情況下,您可以直接訪問它。 例如 :
模塊.py
COISA = "67"
class Hello():
def MyObject():
coisa = "22"
return coisa
您可以通過直接調用外部代碼來訪問 COISA。 請注意大寫命名風格,符合 PEP-8 常量命名約定。
import Module
link = Module.COISA
print(link) # Will print 67
或者,您可以通過這種方式以小寫命名樣式訪問在函數中本地定義的 coisa。 您必須在函數中返回變量值,因為它是函數的局部變量。
import Module
link = Module.Hello.MyObject()
print(link) # Will print 22
編輯
請注意,您還可以直接訪問類中定義的變量。 例如 :
模塊.py
COISA = "67"
class Hello():
coisa_in_my_class = "85"
def MyObject():
coisa = "22"
return coisa
您可以輕松調用coisa_in_my_class
:
import Module
link = Module.Hello.coisa_in_my_class
print(link) # Will print 85
我不太明白這個問題,但我認為你的意思是staticmethod
所以試試這個
class Hello():
@staticmethod
def MyObject():
coisa = "22"
return coisa
然后你可以
import Module
link = Module.Hello.MyObject()
print(link) # 22
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.