簡體   English   中英

從靜態方法訪問靜態變量

[英]Access static variable from static method

我想從靜態方法訪問靜態變量:

#!/usr/bin/env python
class Messenger:
    name = "world"
    @staticmethod
    def get_msg(grrrr):
        return "hello " + grrrr.name

print Messenger.get_msg(Messenger)

如何在不將grrrr傳遞給方法的情況下做到這一點? 這是真正的OOP嗎?...

nameself.name類的self.name似乎不起作用:

NameError: global name 'name' is not defined

NameError: global name 'self' is not defined

使用@classmethod而不是@staticmethod 剛寫完問題就找到了。

在許多語言(C++、Java 等)中,“靜態”和“類”方法是同義詞。 不是在 Python 中。

def get_msg():
    return "hello " + Messenger.name

你不能使用 self.name 因為 self 沒有定義。 self 是非靜態或非類方法方法的第一個參數的命名約定。 它指向您調用方法的對象。 由於您的方法是靜態的,因此您不需要一個對象來調用它。

暫無
暫無

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

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