目前使用 Python 3.2.3:
在 Python 中使用属性时,我一直遇到问题。我不知道我的问题是由于属性在 Python 中的工作方式(我来自 C++/Delphi/C# 世界)还是我做错了什么:
例子:
定义:
class MyClass(object):
...
self.__stringProp = "Mikey"
@property
def StringProp(self):
return self.__stringProp
用法:
p = "Python"
m = p + MyClass.StringProp
错误:
Unsupported operand type(p) for +: 'property' and 'str'
在许多类似情况下也是如此 - 不能对该类型的属性使用类型的运算符,或者如果我将类的实例公开为属性,则我无法访问类中的可调用对象,因为它是作为属性访问的。
我做错了什么,还是 Python 的属性与它们所代表的类型数据的行为不同,与我熟悉的其他语言不同?