Python学习笔记__6.1章 类和实例
# 这是学习廖雪峰老师python教程的学习笔记
1、概览
面向对象最重要的概念就是类(Class)和实例(Instance),必须牢记类是抽象的模板,比如Student类,而实例是根据类创建出来的一个个具体的“对象”,每个对象都拥有相同的方法,但各自的数据可能不同。
1.1、创建类和实例
通过class关键字定义类
class Student(object):
pass
class后面紧接着是类名,即Student,类名通常是大写开头的单词,紧接着是(object),表示该类是从哪个类继承下来的,通常,如果没有合适的继承类,就使用object类,这是所有类最终都会继承的类。
创建实例是通过类名+()实现的
>>> 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'
__init__ 方法 定义 instance 的初始参数
class Student(object):
def __init__(self, name, score): # 第一个参数永远是实例变量self,调用时会自动传递
self.name = name
self.score = score
数据封装
可在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章 类和实例相关推荐
- Python学习笔记:创建分数类
Python学习笔记:创建分数类 1.编写创建分数类.py # 创建分数类from math import gcd# 定义分数类 class Fraction: def __init__(self, ...
- 【Python学习笔记】第一章基础知识:格式化输出,转义字符,变量类型转换,算术运算符,运算符优先级和赋值运算符,逻辑运算符,世界杯案例题目,条件判断if语句,猜拳游戏与三目运算符
Python学习笔记之[第一章]基础知识 前言: 一.格式化输出 1.基本格式: 2.练习代码: 二.转义字符 1.基本格式: 2.练习代码: 3.输出结果: 三.输入 1.基本格式: 2.练习代码: ...
- Effective Java(第三版) 学习笔记 - 第四章 类和接口 Rule20~Rule25
Effective Java(第三版) 学习笔记 - 第四章 类和接口 Rule20~Rule25 目录 Rule20 接口优于抽象类 Rule21 为后代设计接口 Rule22 接口只用于定义类型 ...
- python创建实例属性_Python学习笔记__6.5章 实例属性和类属性
# 这是学习廖雪峰老师python教程的学习笔记 1.概览 1.1.实例绑定属性 class Student(object): def __init__(self, name): self.name ...
- Python学习笔记__10.4章 进程VS线程
# 这是学习廖雪峰老师python教程的学习笔记 1.概览 我们介绍了多进程和多线程,这是实现多任务最常用的两种方式.现在,我们来讨论一下这两种方式的优缺点 要实现多任务,通常我们会设计Master- ...
- Python学习笔记__13.2章 requests
# 这是学习廖雪峰老师python教程的学习笔记 相比于Python内置的urllib模块,使用requests可以更好地处理URL资源. 1.使用requests 1)通过GET访问一个页面 > ...
- Python学习笔记__1.5章 循环
# 这是学习廖雪峰老师python教程的学习笔记 1.for循环遍历 1.遍历名字 names = ['Michael', 'Bob', 'Tracy'] for name in names: pri ...
- Python学习笔记__4.1章 高阶函数
# 这是学习廖雪峰老师python教程的学习笔记 1.概览 我们知道Python内置的求绝对值的函数是abs() # 调用abs()函数可以获得一个值 >>> abs(-10) 10 ...
- python学习笔记(六)——类的初始化(__init__)、类属性和类方法 和 对象
学习本篇文章后会了解到:类的创建,为对象添加属性,对象的初始化,自定义对象的输出,类属性和类方法的创建. 1. 类的定义与格式 类是对一群具有相同特征或者行为的事物的一个统称. 类是一个模块,是负责创 ...
最新文章
- shell之“/dev/null 21”
- Nature子刊:细菌和古菌从域到种的完整分类
- 哪里可以接到python的活干-学了Python以后,我干了很多不是人干的活
- 30个Oracle语句优化规则详解
- 本地服务器模板网站怎么安装,本地服务器怎样安装帝国CMS模版网站
- proxool配置多数据库多连接池
- 使用threadlocal_何时以及如何使用ThreadLocal
- navicat for mysql 用户_Navicat for MySQL 怎么/怎么添加管理用户?Navicat for MySQL 添加管理用户教程_37游游网...
- mysql 状态机_动画状态机(2)
- mysql order by子查询_sql子查询 order by失效问题
- Matlab学习笔记 figure函数
- NOIP2016提高A组 B题 【HDU3072】【JZOJ4686】通讯
- 关于DM8168中移植算法速度慢、效率低的新发现
- ai转型指南_穿越AI转型的转折点
- [mysql终极优化]之主从复制与读写分离详细设置教程
- 【JAVA】java代码实现print2Flash转swf文件,百度文库一样。
- 读书笔记—中国跑步指南
- PCM音频处理一:分离左右声道音频
- 金融素养提升活动 | 第八届东方财富杯全国大学生金融挑战赛启动
- 如何彻底解决浏览器导航被劫持为www.hao123.com