python-day15---面向对象
面向对象
零:面向对象的说明:
面向过程和面向对象:
面向对象:一切以对象为中心(解决的问题本身)
面向过程:一切以过程为中心(解决问题的步骤)
面向对象我们用 “ class 类名:” 来表示面向对象的函数,然后再实例化类(即是将类实际到一个具体的东西)
一:面向对象中类的定义:
总结:类与对象的关系: 类是对事物的总结. 抽象的概念. 类⽤来描述对象. 对象是类的实例
化的结果. 对象能执⾏哪些⽅法. 都由类来决定. 类中定义了什么. 对象就拥有什么
类和对象的自我解释:类就是指一个大集群的对象,对象则是指这个大集群里面的具体的某一个对象。可能是张三,也可能是旺财
001):类名命名规则:#类名首字母大写 例如:class Car:
先创建一个类 (例如: class man: 这就是创建一个类,名字叫做 man )
区别:class man: 与class man(): 区别:就是加了括号就是实例化了,不加括号就是没有实例化
类的应用的实际例子:-----〉 class Car: #我们创建了一个名字为 Car 的类
c=Car() #将类实例化变成一个对象,定义第一辆车,车的名字叫做 c
c.color="red"
c.user="旺财"
c.gulu="4个"
c.paizhao="深A0000"
print(c)
print("车的颜色:%s,\n车的所有者:%s,\n车的轱辘:%s,\n车的拍照:%s\n" % (c.color,c.user,c.gulu,c.paizhao)) 定义第二辆车,车的名字叫做c2
c2=Car()
c2.price="一千万美刀"
c2.chandi="湖北"
c2.size="一百平"
print("第二辆车车的价格:%s,\n第二辆车的产地:%s,\n第二辆车的大小:%s" % (c2.price,c2.chandi,c2.size))
二:构造函数:在创建‘对象的时候给对象设置一些初始化的信息。用__init__(self) 函数
self和__init__ 的说明:
########def __init__(self)是一个构造方法的固定写法。
__init__ :就是我们在实例化一个对象时,使每个实例都有具有自己的具体属性
self:就是这个构造方法在执行这个类时候,将对象传递给self ,self:是谁调用的,谁就是self,
像上面车的例子,如果是c2调用的,那么self就是c2。c掉调用的,self就是c
class Car:
def __init__(self,color,price,size,gulu):#在里面构造一个方法:将对象所拥有的属性放在里面:
self.color=color
self.price=price
self.size=size
self.gulu=gulu def kaiche(self,11): #谁调用,self就是谁,
print("我要开%s,价格是%s,颜色是%s,轮子是%s" % (kaiche,self.price,self.color,self.gulu))
c1=Car("红色","一亿美刀","一百平方","8个")
c1.kaiche("跑车")
c1=Car("","一亿美刀","一百平方","8个")
print(c1.size)
c2=Car("","2亿美刀","122平方","16个")
print(c2.gulu)
例子01
#用面向对象完成用户登陆
class denglu():
def __init__(self,name,password): #将登陆所需要的用户名和密码封装
self.name=name
self.password=password def login(self,uname,passwd):
if uname==self.name and passwd==self.password:
return True
else:
return False user_1=denglu("x",2)
ret=user_1.login(input("请输入用户名:"),int(input("请输入密码:")))
print(ret)
例子02
面向对象案例三:
class HeShang:
#定义这个类的基本属性信息:
def __init__(self,name,age,tizhong):
self.name=name
self.age=age
self.tizhong=tizhong #定义这个和尚类的 基本功能
def shuomingta(self):
print("%s这个和尚,今年有%s 岁了,体重有%s" % (self.name,self.age,self.tizhong)) def qiaomuyu(self):
print("%s一天敲木鱼一万下" % self.name)
diyige=HeShang("张三","","300斤") #实例化这个和尚的到具体对象,并给他一个具体属性信息
diyige.qiaomuyu()
diyige.shuomingta()
例子03
三:面向对象的三大基本特征:
01:封装: (初步理解:我们刚才在在定义了一个类后,将这个类的基本属性放在了 def __init__(self) 及其下面的代码块中,
这个就是封装,我们已经把这个类的基本属性封装在这个构造函数中了)
02:继承:就像继承家族财产一样,父辈有的财产,对于儿子辈来说,也是可以用的,继承的写法是在父辈继承后的类中,将父辈的
类名写在括号中,下例子中:class HongHaiEer(Niu) 就是继承了它的上一个父辈类 Niu 的继承写法。当我们在调用HongHaiEer
这个类时,虽然具有继承Niu这个类的下面的属性("牛魔王打架很厉害"),但是因为 HongHaiEer 这个类自己下面有"喷火"这个属性
所以它是先调用自己的,如果自己没有,则才会去调用父类的属性。 如果子类之上有好几个父类(多继承),则会调用 离自己最近的
那个父类,例如简写为: class HongHaiEer(a,bc,d): 则HongHaiEer 这个子类会优先调用 a 这个父类
实例化解释:
class Niu:
def da(self):
print("牛魔王打架很厉害") class HongHaiEer(Niu):
def da(self):
print("喷火") hhl = HongHaiEer()
hhl.da()
实例化解释
03:多态 :同一个对象有多个形态( 多态这个特征还是需要多看java 和c++啊.....)
多态会使程序具有超高的可扩展性. 面向对象思想的核心与灵魂. python自带多态
实例解释:
同一个对象. 拥有多种形态
class Aniaml:
def dong(self):
print("动物可以动") class Cat(Aniaml):
def chi(self):
print("猫喜欢吃鱼") a = Cat()
a.chi() # 站在猫的角度. 可以吃
a.dong() # 站在动物的角度可以动
python-day15---面向对象的更多相关文章
- python基础——面向对象编程
python基础——面向对象编程 面向对象编程——Object Oriented Programming,简称OOP,是一种程序设计思想.OOP把对象作为程序的基本单元,一个对象包含了数据和操作数据的 ...
- Python的面向对象3
接下来,我们接着讲Python的面向对象,在上一次的博客中,我们详细介绍了类与对象的属性,今天,我们来详细介绍一下面向对象中的方法! 1.定义实例方法 一个实例的私有属性就是以__开头的属性,无法被外 ...
- Python的面向对象2
我们接着讲解Python的面向对象 1.初始化实例属性 在现实生活中,一种类型的实例会具有相同的某些属性,把这些实例划分为一个类型,则这些实例必然有相似的部分.但是,在创建实例之后,我们一个一个的为实 ...
- Python的面向对象1
今天,我们来介绍Python的面向对象编程,其实面向对象并不陌生,在C++ ,Java ,PHP中也有大量使用! 好了,我们来步入正题! 那什么是面向对象编程呢? 1. 面向对象编程是一种程序设计 ...
- My way to Python - Day05 - 面向对象-思维导图
My way to Python - Day05 - 面向对象 思维导图
- Python进阶---面向对象的程序设计思想
Python的面向对象 一.面向过程与面向对象的对比 面向过程的程序设计的核心是过程(流水线式思维),过程即解决问题的步骤,面向过程的设计就好比精心设计好一条流水线,考虑周全什么时候处理什么东西. 优 ...
- Python之面向对象一
引子 小游戏:人狗大战 角色:人和狗 角色属性:姓名,血量,战斗力和性别(种类) 技能:打/咬 用函数实现人打狗和狗咬人的情形 def Dog(name,blood,aggr,kind): dog = ...
- python基础——面向对象进阶下
python基础--面向对象进阶下 1 __setitem__,__getitem,__delitem__ 把对象操作属性模拟成字典的格式 想对比__getattr__(), __setattr__( ...
- python基础——面向对象进阶
python基础--面向对象进阶 1.isinstance(obj,cls)和issubclass(sub,super) isinstance(obj,cls)检查是否obj是否是类 cls 的对象 ...
- python基础——面向对象的程序设计
python基础--面向对象的程序设计 1 什么是面向对象的程序设计 面向过程的程序设计的核心是过程,过程即解决问题的步骤,面向过程的设计就好比精心设计好一条流水线,考虑周全什么时候处理什么东西. 优 ...
随机推荐
- 在tomcat6.5+上配置虚拟主机
一 准备(必须配置,否则不能解析域名到ip) 我们将配置两台虚拟主机,假设域名分别为 www.test1.com www.test2.com 为了测试方便,请在客户机的: Win2K://WINNT/ ...
- Linux开机启动详解
Linux开机启动程序详解 我们假设大家已经熟悉其它操作系统的引导过程,了解硬件的自检引导步骤,就只从Linux操作系统的引导加载程序(对个人电脑而言通常是LILO)开始,介绍Linux开机引导的步骤 ...
- VS运行release版本正常,直接执行exe文件会出现问题
博客转载自:https://blog.csdn.net/weixinhum/article/details/39962483 检测了一下自己的程序,发现程序先后开启了两个线程,并且对两个线程的启动顺序 ...
- export default {} 和new Vue()区别
1.export default 的用法:相当于提供一个接口给外界,让其他文件通过 import 来引入使用. 而对于export default 和export的区别: 在JavaScript ...
- (函数)实现strstr函数
题目:实现strstr函数. 这个函数原型 strstr(char *a, char *b),在a中是否包含b这个字符串,包含返回第一个子串的位置,否则返回NULL. 思路:其实这个就是找子串的问题. ...
- CORS同源策略
同源策略以及跨域资源共享在大部分情况下针对的是Ajax请求.同源策略主要限制了通过XMLHttpRequest实现的Ajax请求,如果请求的是一个“异源”地址,浏览器将不允许读取返回的内容. 支持同源 ...
- C# -- 泛型(1)
简介: 先看看泛型的概念--“通过参数化类型来实现在同一份代码上操作多种数据类型.利用“参数化类型”将类型抽象化,从而实现灵活的复用”. 很多初学者在刚开始接触泛型的时候会比较难理解 “泛型” 在这里 ...
- samba服务器共享开发【windows下开发linux网站】
//@author:yuan<turing_zhy@163.com> //@date:2018-08-05 //注:码字不易转载请注明出处 //环境准备:ubuntu1~16.04.4 1 ...
- Mysql初识数据库《三》数据库概述
1 什么是数据(Data) 描述事物的符号记录称为数据,描述事物的符号既可以是数字,也可以是文字.图片,图像.声音.语言等,数据由多种表现形式,它们都可以经过数字化后存入计算机 在计算机中描述一个事物 ...
- 标准模板库使用参考——vector向量容器
C++的STL从广义上讲分为algorithm(算法),container(容器)和iterator(迭代器)三类,包含了诸多在计算机科学领域里所常用的基本数据结构和基本算法. 在C++标准库中,ST ...