Ранее я обнаруживал обсуждение определения статических методов в (железном) Python, однако о статических свойствах я ничего не нашел.Я предполагаю, что вы можете окончательно создать статические свойства, так как свойства - это просто методы для .NET CLR, и это то, что я сделал в приведенном ниже коде, однако, похоже, вызывая статическое свойство "StaticField" Я не могу получить доступзначение статического поля "__staticField", с которым оно связано, вместо этого я получаю ссылку, где хранится свойство?, но если я использую статический метод "getStaticField" , который используется в качестве свойства Get, он правильно дает мне значение "2".
Так что вопрос: вы можете определить статическийСвойства в (железный) Python?и как я могу использовать их, чтобы получить значение, а не ссылку на метод свойства?
Заранее спасибо.
class Test(object):
__instanceField = 0
__staticField = 0
# Instance Property (read-only)
def getInstanceField(self):
return self.__instanceField
InstanceField = property(getInstanceField, None, None)
# Static Property (read-only)
@staticmethod
def getStaticField():
return Test.__staticField
StaticField = property(getStaticField, None, None)
# Instance Method
def instanceMethod(self, n):
self.__instanceField += 1
print 'instanceMethod', n
# Static Method
@staticmethod
def staticMethod(n):
Test.__staticField += 1
print 'staticMethod', n
# Calling Static Methods
Test.staticMethod(5)
Test.staticMethod(10)
# Calling Instance Methods
t = Test()
t.instanceMethod(5)
t.instanceMethod(10)
print 'InstanceProperty', t.InstanceField
#prints 2
print 'StaticProperty', Test.StaticField
#prints: <property object at 0x000000000000002B>
print 'StaticPropertyMethod', Test.getStaticField()
#prints 2