前沿

问题一: 什么是类?

类是一个独立存放变量(属性/方法)的空间。 用来描述具有相同属性和方法的对象集合,它定义了该集合中每个对象所共同的属性和方法。 类是对象的抽象化,对象是类的实例化。类不代表具体的事物,而对象表示具体的事物。
比如人类,动物,植物等等,这些都是类的概念。 对象是通过类的模板打造出来的

问题二: 什么是面向过程

看名字它是注重过程的。当解决一个问题的时候,面向过程会把事情拆分成: 一个个函数和数据(用于方法的参数) 。然后按照一定的顺序,执行完这些方法(每个方法看作一个个过程),等方法执行完了,事情就搞定了。

问题三: 什么是面向对象

看名字它是注重对象的。当解决一个问题的时候,面向对象会把事物抽象成对象的概念,就是说这个问题里面有哪些对象,然后给对象赋一些属性和方法,然后让每个对象去执行自己的方法,问题得到解决。

类的定义

class定义类,与函数的定义def相似,空格跟类名

类名一般都是首字母大写,“驼峰命名法”,首个单词字母大写。

类名后面可以加括号,也可以不加,默认都是继承object类。

变量名,都是小写。单词之间下划线隔开

python中类的定义语法如下:

class 类名:pass

类的三要素:①类名属性---变量方法---函数

类属性:定义在类方法之外
类方法:类中定义的函数
类属性的访问:类名.属性名
类方法的调用:类名.方法名

注意:(重点)

  • 实例对象可以访问类属性
  • 实例属性有独立内存空间
  • 类不能访问实例属性
  • 类不能访问实例方法
  • 实例对象不能访问类方法

示例 :

class Teacher:name = "鲁班"  # 类属性def age():print('我要上王者')Teacher.name = "李白"    # 改变类的属性
Teacher.name2 = '典韦'  # 类外--添加类属性
print(Teacher.name2)
t = Teacher()  # 创建一个Teacher()的实例t
Teacher.age()   # 调用Teacher类的方法
print(Teacher.name)  # 调用Teacher类的属性
print(t.name)  #实例对象可以访问类属性
#t.age()  #错误   实例对象不能访问类方法print('Teachar.name的id:%d'%id(Teacher.name))
print('t.name为改变前的id:%d'%id(t.name))
t.name = "妲己"
print('t.name改变后的id:%d'%id(t.name))执行结果:
典韦
我要上王者
李白
李白
Teachar.name的id:2756328801008
t.name为改变前的id:2756328801008
t.name改变后的id:2756328801184

类的实例化

实例化是由抽象到具体的过程

定义:实例名 = 类名()

类是实例的工厂,类提供的是母版

实例是一个独立存放变量的空间

例如:

class Car:boon = 4
audi = Car()  # 实例化出来的对象
bmw = Car()
audi.boon = 5  #对象添加的属性,空间是独立的,其他的访问不到
print(audi.boon)
print(bmw.boon)执行结果:
5
4

方法

封装在类里的一种特殊的函数

示例:

class Hero:name = '鲁班'def run(self):    # self 就是一个参数   代表 实例本身   约定俗成selfprint('五连绝世')str = Hero()   # 实例化对象
str.run()    # ok   实例化调用方法
Hero.run(str)
#Hero.run()   #错误  类不能调用实例方法
print('%s拿了五杀'%str.name)
print('%s拿了五杀'%Hero.name)   执行结果:
五连绝世
五连绝世
鲁班拿了五杀
鲁班拿了五杀

这里有了个问题,加了self有什么作用?
self:代表实例本身 ,加了self代表实例方法,没self代表类方法

了解:魔法方法

dir(对象) 查看对象所有的魔法方法

带两个下划线的 叫做魔法方法 有特殊的作用 它们的调用时由python解释器去调用的每一个方法调用的时机都是不一样的 不需要手动调用。

构造方法

初始化

以双下划线开头且以双下划线结尾的固定方法,他们会在特定的时机被触发执行,__init__就是其中之一,它会在实例化之后自动被调用,以完成实例的初始化。

示例:

class Hero:def __init__(self,name):  #两个下划线,初始化方法self.name = namedef state(self):   #在Hero类中定义state方法print('%s又没了'%self.name)  #调用实例wum的name属性wum = Hero('鲁班')   #实例化时需要传一个参数
wum.state()   #调用state方法执行结果:
鲁班又没了

init参数传递过程:
实例化产生一个类的实例—>python自动调用实例.init(参数)—>转换为类.init(实例,参数)

python学习笔记(七)——类基础相关推荐

  1. Python学习笔记 (类与对象)

    Python学习笔记 (类与对象) 1.类与对象 面向对象编程语言类: 一个模板, (人类)-是一个抽象的, 没有实体的对象: (eg: 张三, 李四) 属性: (表示这类东西的特征, 眼睛, 嘴巴, ...

  2. Python 学习笔记 D1(基础)

    Python 学习笔记 D1(基础) 1.注释 #一个注释 ''' 多行注释 ''' 2.运算符与C++相同:+,-,*,/,%,>,<,=,>=,<=,==,!= 与C++不 ...

  3. Python学习笔记 1.0 基础内容篇章

    Python学习笔记 1.0 基础内容篇章 注释 变量 一.定义变量 二.使用变量 bug和debug bug: Debug工具: 数据类型 认识数据类型 在定义数据类型时发生的错误: 数据类型的补表 ...

  4. Python学习笔记之入门基础

    课程链接:Python入门教程--基础阶段_哔哩哔哩_bilibili Python学习笔记 注释 单行注释: * 多行注释: 1.多行前面加# 2."""注释信息&qu ...

  5. python面向对象编程72讲_2020-07-22 Python学习笔记27类和面向对象编程

    一些关于自己学习Python的经历的内容,遇到的问题和思考等,方便以后查询和复习. 声明:本人学习是在扇贝编程通过网络学习的,相关的知识.案例来源于扇贝编程.如果使用请说明来源. 第27关 类与面向对 ...

  6. python学习笔记(七):面向对象编程、类

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

  7. Python学习笔记:类

    本文来自:入门指南 开胃菜参考:开胃菜 使用Python解释器:使用Python解释器 本文对Python的简介:Python 简介 Python流程介绍:深入Python 流程 Python数据结构 ...

  8. python学习笔记(面向对象,类)

    一.类的定义 1.类的基本结构 #命名规则: 驼峰法 class Student(): # 使用class 定义类a= 1 # 变量name = '小明'def aa(self): # 函数print ...

  9. Python 学习笔记13 类 - 继承

    我们在编程的过程中,并非都是要重头开始.比如其他人已经有现成的类,我们可以使用其他找人编写的类.术语称之为: 继承. 当一个类继承例外一个类时,它可以获得这个类的所有属性和方法:原有的类称之为 父类, ...

  10. 【懒懒的Python学习笔记七】

    在本章节中将学习编写函数,所谓函数是带有名字的完成特定功能的代码块.要执行函数定义的特定任务,可以调用该函数,所以在程序中将完成特定功能的部分写成函数,这样在多次执行同一任务的时候就无需反复编写代码了 ...

最新文章

  1. 区块链只能炒币?5G通信、医疗健康、食品安全,采购管理这些领域都已用上国产自研长安链...
  2. garch预测 python_【2019年度合辑】手把手教你用Python做股票量化分析
  3. python subprocess使用记录
  4. 刷新存储器的容量单位是什么_存储系统 半导体存储器
  5. CodeForces 1058C C. Vasya and Golden Ticket
  6. fullcalendar next 不变化_让不懂编程的人爱上iPhone开发(2017秋iOS11+Swift4+Xcode9版)-第3篇...
  7. 招聘 | 刘知远老师博士生涂存超博士创办的「幂律智能」招NLP算法工程师啦
  8. 谁与争锋|神龙三代,集大成而来!
  9. 局域网中文件共享方案介绍(Win10版)
  10. Mybatis的联合查询
  11. 群联2251-07 海力士TLC-16K 颗粒 U盘重新量产记录
  12. 全面了解IDC数据中心
  13. Unity3D使用talkingData应用数据统计
  14. win8系统保护服务器,Win8整合SmartScreen升级功能保护系统安全
  15. gym:Problem A Artwork(并查集思维题)
  16. Go1.9 安全map用法
  17. javase笔记基础篇
  18. Timer定时器详解
  19. 明孝陵的石象道:南京最美600米
  20. 利用声音传感器控制led灯功能_树莓派.利用声音传感器制作声控灯

热门文章

  1. Git 笔记:基本操作工作流程
  2. tableau必知必会之VMware 搭建 Tableau Server for Linux 单机环境
  3. 图像处理特征不变算子系列之KLT算子
  4. MATLAB与图像处理(二):批处理读取多张图片,cell
  5. 数据挖掘学习笔记--决策树C4.5
  6. Python编程基础:第五十三节 匿名函数Lambda Function
  7. 如何在github发布个人网站或开源项目-手把手教您制作并发布个人网站或主页(二)
  8. linux中文输入法的实现
  9. HBase 数据库检索性能优化策略--转
  10. spark源码解析之scala基本语法