簡體   English   中英

如何訪問模塊中類方法內的本地對象?

[英]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.

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