1
我想要做這樣的事情:python:我可以用一個類的getter方法使用字符串格式化運算符嗎?
class Foo(object):
def __init__(self, name):
self._name = name
self._count = 0
def getName(self):
return self._name
name = property(getName)
def getCount(self):
c = self._count
self._count += 1
return c
count = property(getCount)
def __repr__(self):
return "Foo %(name)s count=%(count)d" % self.__dict__
但是,這並不工作,因爲name
和count
與干將性能。
有沒有辦法解決這個問題,所以我可以使用帶有命名參數的格式字符串來使getter被調用?
我知道我可以這樣做,但我寧願在格式化字符串中使用命名參數。我有一個情況,其中有6個或7個字段而不是2個,並且讓一個列表和一個格式化字符串保持同步是令人困惑的。 –
@Jason是的,不幸的是沒有一個好的方法來做到這一點,如果你想通過名字'name'和'count'訪問它們,你必須以這種方式訪問屬性。我添加了一種愚蠢的方式,你可以用靜態名稱格式化,這可能會更好地滿足你的需求,但它可能不會。 –
+1:這有點暴躁(或你說的「愚蠢」),但很直接。謝謝! –