python类:面向对象高级编程__str__/__repr__

  

其实:__str__与__repr__效果一样,人们说:__str__是面向用户的,而__repr__是面向程序员的,轰朵你?


官网解释:

<李>

<代码类=" descclassname ">对象。 <代码类=" descname "> 呢?李李

<>

, <代码类=" xref py py-func docutils文字notranslate "> 内置函数和字符串转换(相反   引号)计算“官方”对象的字符串表示。如果有的话   可能,这应该是什么样的一个有效的Python表达式,可用于   创建一个对象与相同的值(给定一个适当的环境)。<强>如果   这是不可能的, <>/代码应该返回 <强>。,返回值必须是一个 <强>如果一个类   定义 <强> <代码类=" xref py py-meth docutils文字notranslate ">() <强>但不是 <强> <代码类=" xref py py-meth docutils文字notranslate "> <>强,那么 <强> <代码类=" xref py py-meth docutils文字notranslate ">() <强>也   时使用的“非正式”字符串表示的类的实例   必需的。


<李>

<代码类=" descclassname ">对象。 <代码类=" descname "> __str__ 呢?李李

<>

, <代码类=" xref py py-func docutils文字notranslate "> 内置函数和<代码类=" xref std std-keyword docutils文字notranslate "> 语句来计算“非正式”对象的字符串表示。,<强>   不同于 <强> <代码类=" xref py py-meth docutils文字notranslate "> <代码类=" xref py py-meth docutils文字notranslate "> <代码类=" xref py py-meth docutils文字notranslate "> <强>, <>强:可以使用更方便或简洁的表示。   返回值必须是一个字符串对象。


看了解释,哪里说是面向用户,哪里又说面向程序员了? ? ? ?看到加粗字了没有,看到下滑线了没有吗? ? ?这里说的是作用于所有人好嘛! ! !如果非要以自己的职位来说,好吧,好像是这么一回事,真是隐晦的表达。


不说了,先小试一下:

# !/usr/bin/python
# - * -编码:utf - 8 - * - - - - - -

类学生(对象):
,,,,def __init__(自我,名字):
,,,,,,,,自我。哈=名字
,,,,,,,,
类Str(学生):
,,,,def __str__(自我):
,,,,,,return & # 39;Str(名称:% s) & # 39;%的自我。哈


类Repr(学生):
,,,,def __repr__(自我):
,,,,,,return & # 39;Repr(名称:% s) & # 39;%的自我。哈


s=学生(& # 39;迈克尔# 39;)
打印。哈

 python类:面向对象高级编程__str__/__repr__

打印Str(& # 39;你们# 39;)

 python类:面向对象高级编程__str__/__repr__

打印Repr(& # 39;我# 39;)

 python类:面向对象高级编程__str__/__repr__


最近非常的狂,不,不是最近,而是这个阶段的我,非常喜欢怼,如果我表达不好,那真是

python类:面向对象高级编程__str__/__repr__