python什么时候用类_python中什么时候使用自定义类
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什么时候用类_python中什么时候使用自定义类相关推荐
- python 多线程 类_Python中如何自定义一个多线程类呢?
摘要: 下文讲述Python中自定义一个多线程类的方法分享,如下所示: 实现思路: 1.定义一个类继承threading.Thread 2.在自定义类中构造函数重写run方法 例: Python3中自 ...
- python中的元类_python中的元类
类也是对象,但是类有创建对象的能力 动态创建一个类: classmonkey():defbanana(self):print 'banana!' defapple(self):print 'i wan ...
- python 类中定义类_Python中的动态类定义
python 类中定义类 Here's a neat Python trick you might just find useful one day. Let's look at how you ca ...
- python class类_python中的class(类)
编码注释: 在源文件的第一行或第二行写入如下内容: # -*- coding:gbk -*- # 设置源文件编码格式为:gbk 或 # -*- coding:utf-8 -*- # 设置源文件编码格式 ...
- python类_Python中的类
Python和Java都是面向对象的语言,对象从类中获取,类指的是同一类具有相同特征的事物,比如拉布拉多,柯基,哈士奇,它们都是狗,具有狗的相同特征,所以可以被归为一类Dog,Python中类的使用与 ...
- python元类_python中的元类 metaclass
python中的元类 metaclass 在python中,类(class)本身也是一个实例对象, 它的类型则是元类, 如果没有指明, 则自定义类的类型是type. 换言之, 我们所定义的普通类都是t ...
- python编写ATM类_Python中编写类的各种技巧和方法
有关 Python 内编写类的各种技巧和方法(构建和初始化.重载操作符.类描述.属性访问控制.自定义序列.反射机制.可调用对象.上下文管理.构建描述符对象.Pickling).你可以把它当作一个教程, ...
- python中的元类_Python中的元类(metaclass)
提问者自称已经掌握了有关Python OOP编程中的各种概念,但始终觉得元类(metaclass)难以理解.他知道这肯定和自身有关,但仍然觉得不太明白,希望大家可以给出一些实际的例子和代码片段以帮助理 ...
- python中类的属性一般来说_python中实例属性和类属性之间的关系
匿名用户 1级 2018-06-25 回答 一般来说,在Python中,类实例属性的访问规则算是比较直观的. 但是,仍然存在一些不是很直观的地方,特别是对C++和Java程序员来说,更是如此. 在这里 ...
最新文章
- 从点云中重建三维物体实例RfD-Net
- mysql中的innodb_flush_log_at_trx_commit参数的意义
- 浅谈代码的执行效率(2):编译器的威力 [摘自赵劼老师的博客]
- .NET Core 在中国的现状调研
- [建议]我对软工有话说(上)
- 为什么NTFS删除超过4G大文件或数据库文件后FILE RECORD大小表现为0
- python中文字体下载_python中matlabplot和seaborn中文字体显示的一种解决方案
- 徐州哪个技校学计算机,徐州技校,徐州技术学校哪个好,徐州技术学校哪个知名度高一点 - IT教育频道...
- 100万并发连接服务器笔记之Java Netty处理1M连接会怎么样
- L2-013. 红色警报
- 计算机视觉有哪些商业用途​
- 【转存】游戏中常用术语
- 复制文件或文件夹时出错_为什么对于小白来说,复制文件一个都会出错???...
- 史上最全!!收藏了!3D建模软件大全
- 汇编语言 - 实验 - 计算 (X+(Y*Z-100))/W
- 第三章 群体用户画像分析
- 百度的搜索引擎相关技术的分析
- matlab要掌握什么,学习matlab需要什么基础?
- 神经网络中的对抗攻击与对抗样本
- 产品读书《设计中的设计》-设计
热门文章
- 036_CSS导航条
- 游戏对象的移动旋转缩放
- C语言取字节的第n二进制,学C语言的看过来,最完整进制转换、整数和小数内存存储模型...
- linux系统在硬盘上安装程序,在硬盘中安装Linux操作系统最简单的方法
- java 多项式拟合最多的项数_牛顿插值法、曲线拟合、多项式拟合
- python运行不了、显示警告_Python中偶尔遇到的细节疑问(二):UnicodeDecodeError,警告与忽略警告warnings...
- php提示行号,在php中使用trigger_错误时如何获得正确的行号?
- python爬音乐评论生成词云图_python爬虫+词云图,爬取网易云音乐评论
- java测试时找不到类,我在class文件运行不了测试文件,提示找junit4找不到任何的测试项目...
- 华为云计算之ebackup了解