当前位置:主页 > python教程 > python定制类__str__(实例详解)

实例详解python定制类__str__

发布:2020-01-28 17:56:35 156


给网友们整理Python相关的编程文章,网友武嘉福根据主题投稿了本篇教程内容,涉及到python、定制类、__str__、python定制类__str__(实例详解)相关内容,已被278网友关注,下面的电子资料对本篇知识点有更加详尽的解释。

python定制类__str__(实例详解)

在以下的文章之中我们来了解一下什么是python中的定制类。了解一下什么是python定制类,以及python定制类在python编程之中能起到什么样的作用。

 

看到类似__slots__这种形如__xxx__的变量或者函数名就要注意,这些在Python中是有特殊用途的。

__slots__我们已经知道怎么用了,__len__()方法我们也知道是为了能让class作用于len()函数。

除此之外,Python的class中还有许多这样有特殊用途的函数,可以帮助我们定制类

python定制类__str__(实例详解)

__str__

我们先定义一个Student类,打印一个实例:

>>> class Student(object):
...     def __init__(self, name):
...         self.name = name
...
>>> print(Student('Michael'))
<__main__.Student object at 0x109afb190>

打印出一堆<__main__.Student object at 0x109afb190>,看起来相当不好看。

怎么才能打印得好看呢?只需要定义好__str__()方法,返回一个好看的字符串就可以了:

>>> class Student(object):
...     def __init__(self, name):
...         self.name = name
...     def __str__(self):
...         return 'Student object (name: %s)' % self.name
...
>>> print(Student('Michael'))
Student object (name: Michael)

这样打印出来的实例,不但好看,而且容易看出实例内部重要的数据。

但是细心的朋友会发现直接敲变量不用print,打印出来的实例还是不好看:

>>> s = Student('Michael')
>>> s<__main__.Student object at 0x109afb310>

这是因为直接显示变量调用的不是__str__(),而是__repr__(),两者的区别是__str__()返回用户看到的字符串,而__repr__()返回程序开发者看到的字符串,也就是说,__repr__()是为调试服务的。

解决办法是再定义一个__repr__()。但是通常__str__()和__repr__()代码都是一样的,所以,有个偷懒的写法:

class Student(object):
    def __init__(self, name):
        self.name = name
    def __str__(self):
        return 'Student object (name=%s)' % self.name
    __repr__ = __str__

以上就是本篇文章所讲述的所有内容,这篇文章主要介绍了python定制类__str__的相关知识,希望你能借助资料从而理解上述所说的内容。希望我在这片文章所讲述的内容能够对你有所帮助,让你学习python更加轻松。

更多相关知识,请访问码农之家Python教程栏目。

以上就是python定制类__str__(实例详解)的详细内容,更多请关注码农之家其它相关文章!


参考资料

相关文章

  • Python中用PyCrypto实现AES加密的实例代码

    发布:2020-01-03

    这篇文章主要介绍了Python使用PyCrypto实现AES加密功能,结合具体实例形式分析了PyCrypto实现AES加密的操作步骤与相关实现技巧,需要的朋友可以参考下


  • 电脑从cmd中怎么进不去python

    发布:2021-05-24

    电脑cmd进不去Python可能是因为安装Python是没有进行环境变量的配置,从cmd中无法找到Python的安装路径,所以导致从cmd无法启动Python。只要在系统变量path后加上Python的安装路径就可以了。


  • python有什么数据类型

    python有什么数据类型

    发布:2022-06-23

    给网友朋友们带来一篇关于python的教程,python中的数据类型包括nu其中不可变数据类型是字符串、数字、元组、集合;可变数据类型是列表和字典。


  • Python字符串的15个基本操作(小结)

    发布:2022-11-28

    为网友们分享了关于Python的教程,这篇文章主要介绍了Python字符串的15个基本操作,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧


  • Bootstrap Table列宽拖动实例代码

    发布:2020-06-15

    Bootstrap Table可拖动,需要用到它的Resizable扩展插件,下面脚本之家小编给大家带来了Bootstrap Table列宽拖动的方法,感兴趣的朋友一起看看吧


  • bootstrap实现多个下拉框同时搜索的实例

    发布:2022-10-17

    给大家整理一篇关于java的教程,下面小编就为大家带来一篇bootstrap实现多个下拉框同时搜索的实例。小编觉得挺不错的,现在就分享给大家,也给大家做个参考。一起跟随小编过来看看吧


  • 深入理解 Python 中的多线程 新手必看

    发布:2022-04-05

    你应当将下边的例子运行多次,以便可以注意到线程是不可预测的和线程每次运行出的不同结果。声明:从这里开始忘掉你听到过的关于GIL的东西,因为GIL不会影响到我想要展示的东西


  • python事件驱动event实现详解

    python事件驱动event实现详解

    发布:2022-10-09

    给大家整理了关于python的教程,这篇文章主要为大家详细介绍了python事件驱动event实现,具有一定的参考价值,感兴趣的小伙伴们可以参考一下


网友讨论