Python 无参数调用类实例
python中的string类具有以下功能:Python 无参数调用类实例,python,class,arguments,Python,Class,Arguments,python中的string类具有以下功能: s = "Hello" s.upper() [Out] "HELLO" s [Out] "Hello" 这意味着,调用不带参数的类实例将返回一个字符串。我想在我自己的类中实现这个特性。结果应该如下所示: a = MyClass(13.4,"Value 1") a [Out] 13.4 a.title() [Out] "Value 1" 这可能吗?我如何实现它? 感谢您的帮助。您需要实现该类的_repr_____;方法。 参考: 还有。这里有一个工
s = "Hello"
s.upper()
[Out] "HELLO"
s
[Out] "Hello"
这意味着,调用不带参数的类实例将返回一个字符串。我想在我自己的类中实现这个特性。结果应该如下所示:
a = MyClass(13.4,"Value 1")
a
[Out] 13.4
a.title()
[Out] "Value 1"
这可能吗?我如何实现它?
感谢您的帮助。您需要实现该类的_repr_____;方法。
参考:
还有。这里有一个工作代码。您需要实现
\uuuu repr\uuuu
:
In [19]: class MyClass(object):
...: def __init__(self, value, string):
...: self.value = value
...: self.string = string
...: def __repr__(self):
...: return str(self.value)
...: def title(self):
...: return self.string
...:
In [20]: a = MyClass(13.4, "Value 1")
In [21]: a
Out[21]: 13.4
In [22]: a.title()
Out[22]: 'Value 1'
实施
\uuuu str\uuuu
和/或\uuu repr\uuu
方法。在执行s
时,您没有“调用”任何东西,Python正在获取对象的可打印表示。请参阅@deceze:Thank's for your help and sorry for the replicate。我想我没有找到其他答案,因为我不知道repr是我问题的解决方案。谢谢你的快速回答。是否也可以以类似的方式分配值a(a=15.2)?我想问题是,a之后会指向15.2,而不再指向MyClass@如果分配a=15.2
,实例a
将被覆盖。如果要更改实例a
包含的值,应:a.value=15.2
。