[Python]什么时候使用自定义类
来源:互联网 发布:优秀淘宝首页设计 编辑:程序博客网 时间:2024/06/05 15:44
Python中所有的数据都是对象,它提供了许多高级的内建数据类型,功能强大,使用方便,是Python的优点之一。那么什么时候使用自定义类呢?比如设计一个Person类,如果不使用自定义类,可以这样做:
person=['mike', 23, 'male'] #0-姓名, 1-年纪, 2-性别
print(person[0], person[1], person[2])
可以看到,使用内建类型list,需要用下标来引用成员数据,不直观。可以改用dic类型来做:
person1={'name':'mike', 'age': 23, 'sex': 'male'}
person2={'name':'hellen', 'age': 20, 'sex': 'female'}
print(person1['name'], person1['age'], person1['sex'])
这样不用记忆下标,直观多了。但是字典的语法仍然有些麻烦,如果能够像这样引用:person.name,person.age等,就更好。这就是自定义类存在的好处了:
class Person:
def __init__(self, name, age, sex):
self.name = name
self.age = age
self.sex = sex
def __str__(self): #重载该函数便于测试
sep = ','
return self.name+sep+str(self.age)+sep+self.sex
person1 = Person('mike', 23, 'male')
person2 = Person('hellen', 20, 'female')
print(person1)
print(person2.name, person2.age, person2.sex)
可以看到,只要定义好这个类的构造函数,就可以很方便的生成这个类的实例,并且引用数据成员也很方便,比直接使用内建类型方便多了。其实Python就是用内建类型dic来实现自定义类的成员的存储和引用的,从这个角度来看,自定义类是内建类的简化使用方式,内建类型是自定义类型内部必要的组成部分。同时,由于自定义类可以定义自己的成员函数或者重载预定义的方法,所以自定义类扩展了内建类的功能,可以提供对现实事物更好的模拟,这正是面向对象编程的优点。编程的时候,先对所要模拟的事物形成概念,然后尽量使用类来抓住概念,这是面向对象设计的关键。如果需要产生多个同类的对象,应该尽可能地设计一个自定义类去抽象它们。
对自定义类的使用也别过分,有些功能只需要定义一个函数就可以做到了,这个时候就没有必要设计一个自定义类。
- [Python]什么时候使用自定义类
- 什么时候使用抽象类, 什么时候使用接口 ?
- 什么时候使用抽象类,什么时候用接口?
- 什么时候使用接口什么时候使用抽象类[转载]
- 【C#】什么时候使用单例什么时候使用静态类?
- Python入门:自定义类中的方法被调用的时候,什么情况下需要传入self,什么时候不需要
- 什么时候需要自定义set
- C#什么时候该使用静态类呢?
- Swift:什么时候使用结构体和类
- PYTHON 自定义异常类的使用
- 有哪些类加载器?解释什么是双亲委派模型,为什么使用双亲委派模型,如何自定义类加载器?什么时候应该自定义类加载器?
- Python使用技巧(自定义)
- python自定义包使用
- 软件开发者面试百问-----什么时候使用抽象类,什么时候使用接口?
- 软件开发者面试百问-----什么时候使用带有静态成员的类,什么时候使用单例?
- 什么时候使用接口?什么时候使用抽象?选择Java接口还是抽象类 (转)
- 什么时候使用接口?什么时候使用抽象?选择Java接口还是抽象类 (转)
- 什么时候使用接口?什么时候使用抽象?选择Java接口还是抽象类 (转)
- ArcEngine利用ITopologicalOperator实现裁剪功能
- Can't get kernel image!
- Linux系统死机情况分析与处理方案介绍
- 开源一套DirectUI界面库(转)
- 给JavaScript初学者的24条最佳实践
- [Python]什么时候使用自定义类
- 在DLL中产生对话框的方法一(Win32 DLL)
- wpf 中使用Log4net
- Java 文件 解压缩 示例
- hypertable架构与使用实践
- 实现子弹, 可以指定发射位置, 发发射角度, 有方向, 可以反弹
- CentOS 6 安装EPEL/RPMFusion/更新源
- 模拟器搭建之二:如何搭建 MTK 6589模拟器
- Tomcat - web.xml配置文件