掌握Python的X篇_38_类的常见特殊方法让对象更好看

这篇具有很好参考价值的文章主要介绍了掌握Python的X篇_38_类的常见特殊方法让对象更好看。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

python中所有的特殊类方法,都是为了让类或者说对象更加好用。

1. 让对象更好看_Python类中的特殊方法

我们之前实现的类,实例化对象,打印的结果可读性不好。

In [3]: class Dog:
   ...:     def __init__(self,arg_name,arg_age):
   ...:         self.name = arg_name
   ...:         self.age = arg_age
   ...:
   ...: if __name__ == "__main__":
   ...:     dog1 = Dog("旺财",5)
   ...:     dog2 = Dog("小强",6)
   ...:

In [4]: dog1
Out[4]: <__main__.Dog at 0x21376553670>

如果我们想要更友好的输出,我们需要自己实现一个特殊的类方法 __repr__,这个方法必须要返回一个字符串。

当我们打印实例化对象时,其实就是打印这个方法的返回值。

In [8]: class Dog:
   ...:     def __init__(self,arg_name,arg_age):
   ...:         self.name = arg_name
   ...:         self.age = arg_age
   ...:
   ...:     def introduce(self):
   ...:         print("我是",self.name,"年龄",self.age)
   ...:
   ...:     def __repr__(self):
   ...:         return self.name + ":" + str(self.age)
   ...:

In [9]: dog1 = Dog("旺财",5)

In [10]: print(dog1)
旺财:5

实际上可以从python的官方文档来获取相关信息,找object method对应的。 python是将__xx__作为自己的内部函数、变量使用

2. 学习视频地址:类的常见特殊方法文章来源地址https://www.toymoban.com/news/detail-645636.html

到了这里,关于掌握Python的X篇_38_类的常见特殊方法让对象更好看的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • 面向对象——python中类的创建

    面向对象编程——Object Oriented Programming,简称 OOP ,是一种以对象为中心的程序设计思想。很多高级开发语言都是面向对象的,例如,如雷贯耳的Java、谷歌新推的Kotlin、开发iOS的Objective-C、苹果新推的Swift,以及C++、C#等都是面向对象的。Python也不例外,这篇文章将介绍python中

    2024年02月03日
    浏览(34)
  • Python面向对象编程(一)类的基础,关系,继承,封装,多态

    类的一些理论概念及其应用场景等基础内容此处不赘述 目录 python中一切皆对象 类的定义及基础 属性 方法 初始化方法  普通方法 类之间的关系 相互调用 依赖关系 关联关系 组合关系 三大特征----类的继承 重写父类方法 多继承 混合继承  三大特征----封装 三大特征----多态

    2024年02月10日
    浏览(74)
  • 【C++】特殊类的设计

    💕 C++98方式: 在C++11之前,想要一个一个类不被拷贝,只有将 拷贝构造函数 定义为私有,这样在类外就不能调用拷贝构造函数来构造对象了。但是在类内还是可以调用拷贝构造函数来构造对象。 所以正确的做法是 将拷贝构造函数定义为私有,同时拷贝构造函数只声明,不

    2024年02月07日
    浏览(38)
  • 前端开发中常见的20个数组方法,你掌握了几个?

    数组是每种语言都必须打交道的,重要程度不言而喻! 数组在前端开发中的主要使用场景有: 存储和处理数据 :数组是一种有序的数据结构,可以用来存储和处理多个相关的数据。在前端开发中,我们经常使用数组来存储和处理列表、表格、选项等数据。 循环和遍历 :数

    2024年02月15日
    浏览(49)
  • C++之特殊类的设计

    目录 一、单例模式 1、设计模式 2、单例模式 1、饿汉模式 2、懒汉模式 3、单例对象的释放问题 二、设计一个不能被拷贝的类 三、设计一个只能在堆上创建对象的类 四、设计一个只能在栈上创建对象的类 五、设计一个不能被继承的类 概念: 设计模式(Design Pattern)是一套被

    2024年02月08日
    浏览(42)
  • C++进阶 特殊类的设计

    本篇博客介绍:介绍几种特殊的类 我们的拷贝只会发生在两个场景当中 拷贝构造函数 赋值运算符重载 所以说我们只需要让类失去 或者说不能使用这两个函数即可 这里有两个解决方案 在C++98中 我们将拷贝构造函数只声明不定义 并且将其访问权限设置为私有即可 原因如下

    2024年02月12日
    浏览(39)
  • 【C++】特殊类的设计 | 类型转换

    设计模式是 被反复使用 多数人知晓 经过分类的、代码设计经验的总结 单例模式: 一个类只能创建一个对象 即单例模式,该模式可以保证系统中该类只有一个实例 单例模式分为饿汉模式和懒汉模式 饿汉模式 一开始就创建对象(main函数之前) 假设想要vector数组全局只有一份

    2024年02月15日
    浏览(36)
  • 特殊类的设计(含单例模式)

    拷贝只会放生在两个场景中:拷贝构造函数以及赋值运算符重载,因此 想要让一个类禁止拷贝,只需让该类不能调用拷贝构造函数以及赋值运算符重载即可。 C++98: 将拷贝构造函数与赋值运算符重载只声明不定义,并且将其访问权限设置为私有即可。 原因: 设置成私有:如

    2024年01月23日
    浏览(50)
  • C++特殊类的设计与类型转换

    通过new创建的类就是堆上的。 方法一: 这里主要以封禁构造函数为主,让外部只能通过调用func函数方式去创建对象,func函数的内部是通过new创建的,这里要注意的就是拷贝构造的问题。 赋值重载不用删除,因为需要现有一个对象才能赋值给另一个对象,上面的代码只会创

    2024年02月08日
    浏览(37)
  • C++:特殊类的设计和类型转换

    1.设计一个类,不能被拷贝 拷贝只会放生在两个场景中: 拷贝构造函数以及赋值运算符重载 ,因此想要让一个类禁止拷贝,只需让该类不能调用拷贝构造函数以及赋值运算符重载即可。 2.设计一个类,只能在堆上创建对象 两种实现方式: 将类的 构造函数私有 , 拷贝构造声

    2024年01月24日
    浏览(52)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包