python摸爬滚打之day15----初识类
1、面向对象和面向过程
面向过程: 以事物的流程为核心. 优点: 负责的事物流程化, 编写简单; 缺点: 可拓展性差.
面向对象: 一切以对象为核心. 对象里封装着一切. 优点: 可拓展性强; 缺点: 编写难度高.
2、类和对象
类是对事物的总结, 是属性和方法的结合体.
对象是类的实例化结果. 对象里面可封装各种属性(方法是放在类的内存地址里的, 对象里是没有方法的)
两者关系: 类是对事物的总结, 对象是类实例化的结果, 对象能执行那些方法, 都由类决定.
3、类的创建过程?
class Info:
def __init__(self,name,passwd,gender,age): # self 是实例化对象时执行__init__()方法系统自己产生的一个对象,self和
self.name = name # Info()是同一个对象, 哪个对象在调用,self就是那个对象
self.passwd = passwd
self.gender = gender
self.age = age def login(self,nm,pw):
if nm == self.name and pw == self.passwd:
print("您已登陆成功")
else:
print("用户名或密码不对") cus = Info("达文西","dwx123","男","") # 类的实例化结果. 类在实例化前要先执行__init__()方法,然后再有的结果.
类的实例化
4、类的三大特征
4.1、封装:
把很多数据(包括一些属性或方法等)封装在对象里, 然后通过这个对象来调用这些属性或方法(静态方法、类方法、静态字段除外).
class ShangDan:
def __init__(self,name,attact,weapon,point): # 实例化对象时把实例化的参数(名字,攻击,武器,关键点)传进来,并封装
self.name = name # 在self这个对象中; 将do()这个方法也封装在的self中
self.attact = attact
self.weapon = weapon
self.point = point def do(self): # 普通方法, 只能由对象调用, 不能用类名直接调用.
print("%s可以用%s上阵杀敌!" %(self.name,self.weapon)) h = ShangDan("盖伦","物理攻击","大保剑","草丛蹲人")
h.do()
封装
4.2、继承 -----> 单继承(继承一个父类); 多继承(继承多个父类)
子类继承父类, 则可以使用父类中非私有属性或方法外的内容.
什么情况下要继承类呢?
两个类有相同的功能或特征时 可以采用继承的方式. -----> 可以避免写重复代码或重复写方法.
class F_class1:
def func(self):
print("我是父类1的方法") class F_class2:
def func(self):
print("我是父类2的方法") class S_class(F_class2, F_class1): # 多继承, 查找顺序按照继承顺序先后, 先F_class1, 后F_class2.
def func(self):
print("我是子类的方法") s = S_class()
s.func() # 子类在执行func()时自身优先,自身有func()执行完停止,
# 没有的话往上找, 找到F_class2, 有则执行完就停止, 没有的话再找F_class1,直到找到为止.
继承
4.3、多态 ----> python自带多态
在python中, 声明一个变量时是不需要声明该变量的数据类型的.
python中, a = 25 , 也可以重新给a 赋一个"25"字符串, 是不会报错的.
其他语言中, int a = 25 , 声明a 是一个整形, 不允许给a 赋予除整形以外的其他值.
class Animal:
def chi(self):
print("所有的动物都能自主吃食") class Dog(Animal):
def chi(self):
print("狗会吃东西") class Cat(Animal):
def chi(self):
print("猫会吃东西") class Elephant(Animal):
def chi(self):
print("大象会吃东西") class Worker():
def act(self,ani):
ani.chi() # 只要包含了chi()这个功能的所有对象都可以执行. ----> 也叫作鸭子模型(只要有鸭子的特征都是鸭子)
# 并不是说Worker类只有Worker对象(w)才能调用. d = Dog()
c = Cat()
e = Elephant()
w = Worker()
w.act(d)
w.act(c)
w.act(e)
多态
5、类的产生
python摸爬滚打之day15----初识类的更多相关文章
- python摸爬滚打之day17----类与类之间的关系
1.类与类之间的联系 1.1 依赖关系 类A中使用了类B, 类B作为参数传进类A的方法中被使用. 这种关系中类与类之间的联系是最轻的. class Elephant: def open(self,e ...
- 孤荷凌寒自学python第十一天初识Python的字典类
孤荷凌寒自学python第十一天初识Python的字典类 (完整学习过程屏幕记录视频地址在文末,手写笔记在文末) Python的字典其实是一张二维对照表 下面举例说明: 键名Key 姓名 性别 身高 ...
- Python初识类与对象
Python初识类与对象 类与对象 世界观角度分析类与对象 类是一个抽象的概念,而对象是一个实体的存在,对象由类创造而出,每个对象之间互相独立互不影响,一个对象可以同时拥有多个类的方法,实例化就是通过 ...
- Python面向对象01 /面向对象初识、面向对象结构、类、self、实例化对象
Python面向对象01 /面向对象初识.面向对象结构.类.self.实例化对象 目录 Python面向对象01 /面向对象初识.面向对象结构.类.self.实例化对象 1. 面向对象初识 2. 面向 ...
- python学习日记(初识面向对象)
面向过程 VS 面向对象 面向过程 面向过程的程序设计把计算机程序视为一系列的命令集合,即一组函数的顺序执行.为了简化程序设计,面向过程把函数继续切分为子函数,即把大块函数通过切割成小块函数来降低系统 ...
- 孤荷凌寒自学python第三十八天初识python的线程控制
孤荷凌寒自学python第三十八天初识python的线程控制 (完整学习过程屏幕记录视频地址在文末,手写笔记在文末) 一.线程 在操作系统中存在着很多的可执行的应用程序,每个应用程序启动后,就可以看 ...
- 孤荷凌寒自学python第三十三天python的文件操作初识
孤荷凌寒自学python第三十三天python的文件操作初识 (完整学习过程屏幕记录视频地址在文末,手写笔记在文末) 今天开始自学python的普通 文件操作部分的内容. 一.python的文件打开 ...
- 孤荷凌寒自学python第十七天初识Python的函数
孤荷凌寒自学python第十七天初识Python的函数 (完整学习过程屏幕记录视频地址在文末,手写笔记在文末) 函数是能够完成指定运算并返回运算结果的代码块.是结构化编程重要的结构. 我首先发现pyt ...
- python基础——实例属性和类属性
python基础——实例属性和类属性 由于Python是动态语言,根据类创建的实例可以任意绑定属性. 给实例绑定属性的方法是通过实例变量,或者通过self变量: class Student(objec ...
随机推荐
- CentOS 7 yum nginx MySQL PHP7 简易环境搭建(精)
用centos自带的yum源来安装nginx,mysql和php,超级方便,省去编译的麻烦,省去自己配置的麻烦,还能节省非常多的时间. 我们先把yum源换成国内的阿里云镜像源(当然不换也可以),先备份 ...
- 解决git 不同branch 下node_moudes不同步的问题
做nodejs开发,或者vue react等开发的同学,在使用git 做版本管理的时候肯定碰到过这个问题. 按常规做法node_modules 肯定是被添加到.gitignore中不需要被提交的 但是 ...
- Apache与php快速部署web服务
[本文出自天外归云的博客园] 在一台服务器上临时起个web服务,读取服务器上的cfs文件内容并显示在页面上,做一个简单的web请求处理. 首先找到apache,在conf文件夹下vi httpd.co ...
- 微信redirect_uri域名与后台配置不一致,错误代码10003
现象 做好了微信公众号扫描登录后,很稳定的运行,后来增加了微信开放平台,结果偶尔就出现了这个redirect_uri错误.然后重启服务器后,又正常. 探查 网上的说法都是网页授权配置的问题,检查微信公 ...
- 关于VMware Linux 虚拟机忘记root 密码找回
因为昨天新安装过虚拟机设置了新的密码,再加上我好长时间没有用自己旧的虚拟机,导致忘记了密码,原来虽然知道在单用模式下,找回密码,但是确实是自己从来都没有做过,还好我们组大手飞翔哥告诉了我,怎么找回ro ...
- python serial 模块使用
python3 开始, python 加入了 serial 操作串口的模块 模块的引用 import serial 串口的申请 serial_com1 = serial.Serial("/d ...
- office2007每次打开都要配置文件,怎么取消配置(可行)
取消打开软件进行配置的方法 打开“我的电脑”——“C盘”— —“Program Files\Common Files\ Microsoft Shared\OFFICE12\Office Setup C ...
- 外网訪问XAMPP失败 解决方式 XAMPP1.8.3
xampp 訪问出现New XAMPP security concept New XAMPP security concept: Access to the requested directory i ...
- 【转】Flask入门之上传文件到服务器
#Sample.py # coding:utf-8 from flask import Flask,render_template,request,redirect,url_for from werk ...
- 微软消息队列-MicroSoft Message Queue(MSMQ)队列的C#使用
目录 定义的接口 接口实现 建立队列工厂 写入队列 获取消息 什么是MSMQ Message Queuing(MSMQ) 是微软开发的消息中间件,可应用于程序内部或程序之间的异步通信.主要的机制是:消 ...