class Student(object): #class后面紧接着是类名,即Student,类名通常是大写开头的单词,紧接着是(object),表示该类是从哪个类继承下来的.通常,如果没有合适的继承类,就使用object类,这是所有类最终都会继承的类。

def __init__(self,name,score): #通过定义一个特殊的__init__方法,在创建实例的时候,就把类的name,score等属性绑上去,__init__方法的第一个参数永远是self,表示创建的实例本身,因此,在__init__方法内部,就可以把各种属性绑定到self,因为self就指向创建的实例本身,除了self外,其他参数和函数的参数一致,仍然可以用默认参数、可变参数、关键字参数和命名关键字参数。

self.name =name

self.score=scoredef print_score(self): #在Student类的内部定义访问数据的函数,这样,就把“数据”给封装起来了。这些封装数据的函数是和Student类本身是关联起来的,我们称之为类的方法,要定义一个方法,除了第一个参数是self外,其他和普通函数一样。要调用一个方法,只需要在实例变量上直接调用,除了self不用传递,其他参数正常传入.

print("%s:%s" %(self.name,self.score))def get_grade(self): #封装的另一个好处是可以给Student类增加新的方法,比如get_grade,同样的,get_grade方法可以直接在实例变量上调用,不需要知道内部实现细节

if self.score >= 90:return "A"

elif self.score >= 60:return "B"

else:return "C"bar= Student("Bart Simpson",59)

bar.print_score()

ret=bar.get_grade()print(ret)

lisa= Student("Lisa Simpson",87)

lisa.age= 18

print(dir(lisa)) #使用dir()来查看类(或者是变量)可以使用的方法,可以看到Lisa实例比bar实例多了个age方法,这是因为我们的lisa.age = 18语句给lisa添加了新属性age.和静态语言不同,Python允许对实例变量绑定任何数据,也就是说,对于两个实例变量,虽然它们都是同一个类的不同实例,但拥有的变量名称都可能不同.#['__class__', '__delattr__', '__dict__', '__dir__', '__doc__', '__eq__', '__format__', '__ge__', '__getattribute__', '__gt__', '__hash__', '__init__', '__init_subclass__', '__le__', '__lt__', '__module__', '__ne__', '__new__', '__reduce__', '__reduce_ex__', '__repr__', '__setattr__', '__sizeof__', '__str__', '__subclasshook__', '__weakref__', 'age', 'get_grade', 'name', 'print_score', 'score']

print(dir(bar))#['__class__', '__delattr__', '__dict__', '__dir__', '__doc__', '__eq__', '__format__', '__ge__', '__getattribute__', '__gt__', '__hash__', '__init__', '__init_subclass__', '__le__', '__lt__', '__module__', '__ne__', '__new__', '__reduce__', '__reduce_ex__', '__repr__', '__setattr__', '__sizeof__', '__str__', '__subclasshook__', '__weakref__', 'get_grade', 'name', 'print_score', 'score']

python对象编程例子-python 面向对象编程 类和实例相关推荐

  1. python归一化 增大差异_简学Python第六章__class面向对象编程与异常处理

    Python第六章__class面向对象编程与异常处理 欢迎加入Linux_Python学习群 群号:478616847 目录: 面向对象的程序设计 类和对象 封装 继承与派生 多态与多态性 特性pr ...

  2. python浓缩(13)面向对象编程

    为什么80%的码农都做不了架构师?>>>    本章主题 ? 引言 ? 面向对象编程 ? 类 ? 实例 ? 绑定与方法调用 ? 子类,派生和继承 ? 内建函数 ? 定制类 ? 私有性 ...

  3. Python开发系列课程(11) - 面向对象编程进阶

    面向对象编程进阶 在前面的章节我们已经了解了面向对象的入门知识,知道了如何定义类,如何创建对象以及如何给对象发消息.为了能够更好的使用面向对象编程思想进行程序开发,我们还需要对Python中的面向对象 ...

  4. Python学习笔记:16 面向对象编程入门

    文章目录 类和对象 面向对象的过程 定义类 创建和给对象发消息 打印对象 面向对象编程的支柱 经典案例 例子1:定义一个类描述数字时钟,可以显示时/分/秒,可以运转(走字) 例子2:扑克游戏:四个玩家 ...

  5. Python基础十五:面向对象编程四:高级特性

    Python基础十五:面向对象编程四:高级特性 Python基础系列内容为学习廖雪峰老师Python3教程的记录,廖雪峰老师官网地址:廖雪峰Python3教程 Author:yooongchun Em ...

  6. Python开发系列课程(9) - 面向对象编程基础

    面向对象编程基础 活在当下的程序员应该都听过"面向对象编程"一词,也经常有人问能不能用一句话解释下什么是"面向对象编程",我们先来看看比较正式的说法. 把一组数 ...

  7. 类是对象的抽象,对象是类的实例

    类是对象的抽象,对象是类的实例 是 正确的 看:https://www.cnblogs.com/marlanchen/p/11563929.html[转载]

  8. python对象编程例子-python(十二)面向对象编程、类

    面向对象编程 面向对象--Object Oriented Programming,简称oop,是一种程序设计思想.在说面向对象之前,先说一下什么是编程范式,编程范式你按照什么方式来去编程,去实现一个功 ...

  9. python对象编程例子-python面向对象编程:python类和实例讲解

    东尧爱分享 这是东尧每天一篇文章的第51天 东尧写文章的目标:分享东尧的经验和思考,帮你获取物质和精神两方面幸福. 1 什么是对象 在python里面,一切皆为对象.也就是说python里的所有数据都 ...

  10. python对象编程例子-Python 面向对象编程实例讲解

    如果你没有任何以往的经验与面向对象(OO)编程,你可能想咨询或至少某种教程的入门课程,所以,你必须掌握的基本概念. 然而,这里是小推出的面向对象编程(OOP)给你带来更好的学习速度: OOP的术语概述 ...

最新文章

  1. Column store index 列数据如何匹配成行数据?
  2. CentOS7 systemctl tomcat常用配置
  3. TCP连接之报文首部
  4. C# 入门之 Hello World
  5. C++(STL):21---deque之源码剖析
  6. Oracle官方推荐的性能测试工具!简单、精准又直观!
  7. C语言-指针的比较/指针加减
  8. 批量自动化配置Dell服务器idrac管理口IP
  9. ios中mvc的FormsAuthentication.SetAuthCookie(cookieUserName, false)失败
  10. nacos动态配置数据源_Sentinel使用Nacos存储规则及同步
  11. /usr/bin/ld: cannot find -lmysqlclient解决方法
  12. SONY图像传感器列表
  13. 泛微云桥任意文件读取漏洞复现[09/18]
  14. 怎么简单的生成SSL证书
  15. 数据结构练习题及答案
  16. DFS判断回路及回路个数
  17. MIUI patchrom拉取zip包出错的解决记录
  18. win10 的 PS 不能直接拖进文件的解决方法(附:与 Edge 登录的冲突)
  19. ThinkPad蓝牙鼠标出现延迟、断开连接等问题的解决办法
  20. uniapp推送功能实现

热门文章

  1. Response.Redirect() 跳转中的ThreadAbortException
  2. jQuery 参考手册 - 事件
  3. 【转】该帐户当前被锁定,所以用户 'sa' 登录失败。系统管理
  4. 创建集成含有SQL Server 2008 RTM + Service Pack 1 的安装 (翻译)
  5. ubuntu14.04安装CUDA8.0
  6. session和cookie的应用场景和区别
  7. php单元测试断言方法
  8. jQuery Validate 表单验证插件----自定义校验结果样式
  9. [codevs 1249] 多边形的面积
  10. python之simplejson,Python版的简单、 快速、 可扩展 JSON 编码器/解码器