# 这是学习廖雪峰老师python教程的学习笔记

1、概览

面向对象最重要的概念就是类(Class)和实例(Instance),必须牢记类是抽象的模板,比如Student类,而实例是根据类创建出来的一个个具体的“对象”,每个对象都拥有相同的方法,但各自的数据可能不同。

1.1、创建类和实例

  1. 通过class关键字定义类

class Student(object):
    pass

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

  1. 创建实例是通过类名+()实现的

>>> bart = Student()

>>> bart
<__main__.Student object at 0x10a67a590> # 变量bart指向的就是一个Student的实例,后面的0x10a67a590是内存地址

>>> Student
<class '__main__.Student'>

可以自由地给一个实例变量绑定属性,比如,给实例bart绑定一个name属性:

>>> bart.name = 'Bart Simpson'
>>> bart.name
'Bart Simpson'

  1. __init__ 方法 定义 instance 的初始参数

class Student(object):

def __init__(self, name, score):  # 第一个参数永远是实例变量self,调用时会自动传递

self.name = name
        self.score = score

  1. 数据封装

可在Student类的内部定义访问数据的函数,把“数据”给封装起来。

这些封装数据的函数是和Student类本身是关联起来的,我们称之为类的方法

class Student(object):

def __init__(self, name, score):
        self.name = name
        self.score = score

def print_score(self):
        print('%s: %s' % (self.name, self.score))

instance 可以直接调用类的方法

>>> bart.print_score()

Bart Simpson: 59

2、总结

类是创建实例的模板,而实例则是一个一个具体的对象,各个实例拥有的数据都互相独立,互不影响;

方法就是与实例绑定的函数,和普通函数不同,方法可以直接访问实例的数据;

通过在实例上调用方法,我们就直接操作了对象内部的数据,但无需知道方法内部的实现细节。

和静态语言不同,Python允许对实例变量绑定任何数据,也就是说,对于两个实例变量,虽然它们都是同一个类的不同实例,但拥有的变量名称都可能不同。(比如 bart.age=8,就给bart多加了一个 age 变量/属性)

转载于:https://blog.51cto.com/12758568/2116762

Python学习笔记__6.1章 类和实例相关推荐

  1. Python学习笔记:创建分数类

    Python学习笔记:创建分数类 1.编写创建分数类.py # 创建分数类from math import gcd# 定义分数类 class Fraction: def __init__(self, ...

  2. 【Python学习笔记】第一章基础知识:格式化输出,转义字符,变量类型转换,算术运算符,运算符优先级和赋值运算符,逻辑运算符,世界杯案例题目,条件判断if语句,猜拳游戏与三目运算符

    Python学习笔记之[第一章]基础知识 前言: 一.格式化输出 1.基本格式: 2.练习代码: 二.转义字符 1.基本格式: 2.练习代码: 3.输出结果: 三.输入 1.基本格式: 2.练习代码: ...

  3. Effective Java(第三版) 学习笔记 - 第四章 类和接口 Rule20~Rule25

    Effective Java(第三版) 学习笔记 - 第四章 类和接口 Rule20~Rule25 目录 Rule20 接口优于抽象类 Rule21 为后代设计接口 Rule22 接口只用于定义类型 ...

  4. python创建实例属性_Python学习笔记__6.5章 实例属性和类属性

    # 这是学习廖雪峰老师python教程的学习笔记 1.概览 1.1.实例绑定属性 class Student(object): def __init__(self, name): self.name ...

  5. Python学习笔记__10.4章 进程VS线程

    # 这是学习廖雪峰老师python教程的学习笔记 1.概览 我们介绍了多进程和多线程,这是实现多任务最常用的两种方式.现在,我们来讨论一下这两种方式的优缺点 要实现多任务,通常我们会设计Master- ...

  6. Python学习笔记__13.2章 requests

    # 这是学习廖雪峰老师python教程的学习笔记 相比于Python内置的urllib模块,使用requests可以更好地处理URL资源. 1.使用requests 1)通过GET访问一个页面 > ...

  7. Python学习笔记__1.5章 循环

    # 这是学习廖雪峰老师python教程的学习笔记 1.for循环遍历 1.遍历名字 names = ['Michael', 'Bob', 'Tracy'] for name in names: pri ...

  8. Python学习笔记__4.1章 高阶函数

    # 这是学习廖雪峰老师python教程的学习笔记 1.概览 我们知道Python内置的求绝对值的函数是abs() # 调用abs()函数可以获得一个值 >>> abs(-10) 10 ...

  9. python学习笔记(六)——类的初始化(__init__)、类属性和类方法 和 对象

    学习本篇文章后会了解到:类的创建,为对象添加属性,对象的初始化,自定义对象的输出,类属性和类方法的创建. 1. 类的定义与格式 类是对一群具有相同特征或者行为的事物的一个统称. 类是一个模块,是负责创 ...

最新文章

  1. shell之“/dev/null 21”
  2. Nature子刊:细菌和古菌从域到种的完整分类
  3. 哪里可以接到python的活干-学了Python以后,我干了很多不是人干的活
  4. 30个Oracle语句优化规则详解
  5. 本地服务器模板网站怎么安装,本地服务器怎样安装帝国CMS模版网站
  6. proxool配置多数据库多连接池
  7. 使用threadlocal_何时以及如何使用ThreadLocal
  8. navicat for mysql 用户_Navicat for MySQL 怎么/怎么添加管理用户?Navicat for MySQL 添加管理用户教程_37游游网...
  9. mysql 状态机_动画状态机(2)
  10. mysql order by子查询_sql子查询 order by失效问题
  11. Matlab学习笔记 figure函数
  12. NOIP2016提高A组 B题 【HDU3072】【JZOJ4686】通讯
  13. 关于DM8168中移植算法速度慢、效率低的新发现
  14. ai转型指南_穿越AI转型的转折点
  15. [mysql终极优化]之主从复制与读写分离详细设置教程
  16. 【JAVA】java代码实现print2Flash转swf文件,百度文库一样。
  17. 读书笔记—中国跑步指南
  18. PCM音频处理一:分离左右声道音频
  19. 金融素养提升活动 | 第八届东方财富杯全国大学生金融挑战赛启动
  20. 如何彻底解决浏览器导航被劫持为www.hao123.com

热门文章

  1. Nature撤稿!三年前微软在量子计算上的巨大胜利终究是个错误
  2. AAAI2018正式落幕 13个世界顶尖AI教授都讲了啥?
  3. 2018年,这15个领域将会呈现指数级变化
  4. 初学编程的小白 | 每日趣闻
  5. 学到了!程序员大神用这招让开发效率直接提升 10 倍!!
  6. 一个 P4 的 Bug,就难倒了 JDK 吗 ?
  7. Java B2B2C o2o多用户商城 springcloud架-企业云架构common-service代码结构分析
  8. 【其他】GIT常用原生命令
  9. 用Vue来实现音乐播放器(十六):滚动列表的实现
  10. Spring集成spymemcached