在python中面向对象,主要就是类实例
是对象的具体定义.实例是存放了类中定义的对象的具体信息的'实物'.
  
在python2.x版本中类分为经典类和新式类
两者的区别是:
有没有显式的从object类继承,如果没有就是一个经典类,有是新式类,不过在python3.x版本中不论是否继承object类,都默认为新式类.

# 经典类
class ObjectA():pass
# 新式类
class ObjectB(object):pass
# python3.x默认为新式类
class ObjectC():pass

一个简单类

# 一个简单类
class MyData():pass
# 实例化
mathObj = MyData()
# 增加实例的属性(动态的)
mathObj.x = 10
mathObj.y = 11
# 访问类的属性
mathObj.x
10

一个带有方法的类

class NewData():# 类方法# self参数代表实例对象本身,使用实例调用类方法时,可以省去传递实例对象def foo(self):print("method foo")
# 调用类方法
Obj = NewData()
Obj.foo()
method foo

 
类的特殊方法_init_()

 
特殊方法init(),在类创建实例后,返回实例之前,实例化的过程中被调用,
定义一些额外的行为或特定任务.比如设定属性的初始值.

class Person():'person class'def __init__(self, name='None', age=0):self.name = nameself.age = ageprint('Created instance for:',self.name)# 更新年龄属性def updateAge(self, newage):self.age = newageprint('Update age for:',self.name)
# 创建tom实例,在实例化过程中隐式的调用__init__方法
tom = Person('Tom Lee',19)
Created instance for: Tom Lee
tom.age
19
# 在__init__()中设置了默认参数
wang = Person()
Created instance for: None
# 调用updateAge(),需要传入一个参数,self不计
wang.updateAge(20)
wang.age
Update age for: None20

创建子类

 
通过继承子类可以保持父类中已有的属性和方法,同时子类还可以定制自己的新特性.

# Student类中也同样需要名字.年龄等属性
# 从Person类继承
class Student(Person):'Student class'def __init__(self, name, age, sid, phone_num):# 初始化父类属性#super().__init__(name, age)Person.__init__(self, name, age)# 子类属性初始化self.sid = sidself.phone_num = phone_numdef updatePhonenum(self, newphone_num):self.phone_num = newphone_numprint('Update phone number for:',self.name)#super()会自动找到子类继承的父类,在初始化父类属性时

 
  在Student类中已经继承了Person类的所有属性和方法,由于Student有新的属性要初始化,所以要重写init()方法,子类重写了与父类同名的方法后,父类的方法会被屏蔽不会被子类实例调用,所以要显示的通过Person.init()调用父类的构造器..
  在调用父类init方法时,显示的传递了self实例对象,这是因为:不是在父类的实例中调用了该方法,在子类的实例中调用没有通过实例调用,要显示传递一个self参数.

!!!,在python3.x中,使用super().init()就不用这么麻烦了

wangjh = Student('WJH',22,7107,123456)
Created instance for: WJH
wangjh.name
'WJH'
wangjh.updatePhonenum(123333)
Update phone number for: WJH
wangjh.phone_num
123333

核心笔记
类名通常由大写字母大头,数据属性.方法名应该指出对应对象或值的行为,
方法名(动词+对象)来命名.例如UpdateAge或者update_age

Python面向对象-0相关推荐

  1. python面向对象的优点_Python面向对象编程——总结面向对象的优点

    Python面向对象编程--总结面向对象的优点 一.从代码级别看面向对象 1.在没有学习类这个概念时,数据与功能是分离的 def exc1(host,port,db,charset): conn=co ...

  2. 这可能是Python面向对象编程的最佳实践

    作者 | 崔庆才 来源 | 进击的Coder(ID:FightingCoder) Python 是支持面向对象的,很多情况下使用面向对象编程会使得代码更加容易扩展,并且可维护性更高,但是如果你写的多了 ...

  3. 第八课.Python面向对象(二)

    类的继承和多态 继承和多态与函数有共同的目的,都是为了减少代码的冗余,提高复用的效率: 根据"Python面向对象(一)"的笔记,我现在定义一个Cinema类: #父类 class ...

  4. python面向对象类属性_python面向对象之类属性和类方法案例分析

    本文实例讲述了python面向对象之类属性和类方法.分享给大家供大家参考,具体如下: 目标 类的结构 类属性和实例属性 类方法和静态方法 01. 类的结构 1.1 术语 -- 实例 使用面相对象开发, ...

  5. python对象编程例子-这是我见过最详细的Python面向对象编程!建议收藏!

    原标题:这是我见过最详细的Python面向对象编程!建议收藏! 面向对象编程和函数式编程(面向过程编程)都是程序设计的方法,不过稍有区别. 面向过程编程: 1. 导入各种外部库 2. 设计各种全局变量 ...

  6. python面向对象编程的优点-Python面向对象编程——总结面向对象的优点

    Python面向对象编程--总结面向对象的优点 一.从代码级别看面向对象 1.在没有学习类这个概念时,数据与功能是分离的 def exc1(host,port,db,charset): conn=co ...

  7. python面向对象生动讲解_Python面向对象语法精讲

    本专题的内容结构: 第一部分主要是:面向对象基础 第二部分主要是:面向对象进阶 第一部分的结构: unit1:面向对象编程模式: (1),面向对象编程思想 (2),面向对象的三个特征 (3),Pyth ...

  8. python面向对象编程的三大特性_Python面向对象总结及类与正则表达式详解

    Python3 面向对象 -------------------------------------------------------------------------------- 一丶面向对象 ...

  9. 【Python进阶】实战Python面向对象基本编程

    欢迎来到专栏<Python进阶>.在这个专栏中,我们会讲述Python的各种进阶操作,包括Python对文件.数据的处理,Python各种好用的库如NumPy.Scipy.Matplotl ...

  10. Python面向对象反射,双下方法

    一. 反射 反射的概念是由Smith在1982年首次提出的,主要是指程序可以访问.检测和修改它本身状态或行为的一种能力(自省).这一概念的提出很快引发了计算机科学领域关于应用反射性的研究.它首先被程序 ...

最新文章

  1. “领导跳槽想带我走,我要不要跟?”
  2. c#求三角形面积周长公式_此题要求三角形的面积,但是无法用公式求出,而是通过方程解决...
  3. .NET Core微服务之路:让我们对上一个Demo通讯进行修改,完成RPC通讯
  4. 中小企业老板辛苦一整年,为什么就赚不到钱?
  5. 数字int转换成文字string形式的方法
  6. 项目质量管理在民航业中的应用
  7. Atitit 每个人都应该实施的互联网金融战略 attilax总结
  8. 专家提醒 IE下JS编程中需注意内存释放问题
  9. python zookeeper api_zookeeper java api介绍
  10. java html模板转图片、动态绑定数据
  11. 优化 Laravel 网站打开速度9条
  12. SVG—最简单的SVG动画
  13. 这些年,这些ACM大佬-吴作凡访谈
  14. Oracle数据库表的字段添加注释和向现有表添加字段
  15. 基础计算机教学论文,基础计算机论文,关于民办院校计算机基础课程实践教学体会相关参考文献资料-免费论文范文...
  16. studio3下载安装使用
  17. 语音唤醒技术的原理是什么?
  18. windows 高级
  19. 微信小程序web-view的使用教程
  20. Docker系列之RabbitMQ安装部署教程

热门文章

  1. 致经典初选的60首备选篇目_致经典复选诵读题库:英诗选篇学前及小学段60首...
  2. 数据库内获取准确的当前时间
  3. oracle序列不连续,Oracle不连续的值,如何实现查找上一条、下一条
  4. java反射代码_Java反射代码 求解答,谢谢~
  5. nopi 缩小字体填充_20202南雄高空广告字体安装施工方案设备先进
  6. 分布式本质论:高吞吐、高可用、可扩展 (1)
  7. CentOS配置Nginx官方的Yum源 及yum安装php
  8. UESTC 574 High-level ancients
  9. InnoSetup 如何获取安装程序的路径?
  10. eclipse alt+/ 无效时,如何设置 《转》