python有面向对象吗_python面向对象(一)

面向对象

1.初始面向对象

面向过程:

一切以事务的发展流程为中心.

面向对象:

一切以对象为中心. 一切皆为对象. 具体的某一个事务就是对象

打比方:

面向过程

大象进冰箱

步骤: 第一步, 开门, 第二步, 装大象, 第三步, 关门

面向对象:

大象, 你进冰箱.

此时主语是大象. 我操纵的是大象. 此时的大象就是对象

2. 类和对象

类: 就是图纸. 创建对象的第一步. 先画图纸. 先写类.

对象: 对象就是车. 通过图纸造出来的具体的东西. 通过类来创建对象

类与对象的关系:

类是对xxx事物的归类.

def __init__(self, 参数)  参数一般作为属性设置给对象. 对象就是self, 对属性的封装.

pass

def 方法(self, 参数): 方法. 第一个参数一般是固定的self. 当前类的对象.

pass

对象是xx类型的一个具体

创建对象: 类名()

创建类:

class 类名:

def __init__(self): # 初始化方法. 又被成为构造方法

self.属性 = 值

def fangfa(self):

方法体(函数体,  return)

创建对象:

变量 = 类名() # 实例化 创建对象

变量.属性 # 访问对象的属性信息

变量.方法() # 访问类中的方法

classHeShang:def __init__(self, fh, name, miao):

self.fahao=fh

self.name=name

self.miao=miaodefnianjing(self):print("和尚会念经")defhuayuan(self):print("和尚会化缘")

lzs= HeShang("花和尚", "鲁智深", "梁山水庙")

lzs.nianjing()

lzs.huayuan()

3. 面向对象和面向过程的对比

如果写一些比较小的程序用面向过程.

程序很复杂. 很庞大建议用面向对象.

4. 面向对象的三大特征

封装:

1. 对属性的封装(__init__())

self.xxx = xxx

2. 对方法和功能的封装

classStudent:def __init__(self, num, name, clazz):

self.num=num

self.name=name

self.clazz=clazz

stu= Student("10010", "曹宝宝", "三年二班")

stu2= Student("10086", "王迪", "三年一班")defteach(s):print("教他%s语文课" %(s.name))

teach(stu)

teach(stu2)

继承

子类自动拥有父类中除了私有内容外的其他所有内容

class Bar(Foo):  Bar对Foo进行了扩展

pass

当出现x是一种y的时候. 推荐使用继承关系

python支持多继承. 查找顺序: 先找离他近的.

classBase1:deff1(self):print("base1.1")deff2(self):print("base1.f2")deff3(self):print("base2.f3")

self.f1()classBase2:deff1(self):print("base2.f1")classFoo(Base1,Base2):deff0(self):print("foo.f0")

self.f3()

obj=Foo()

obj.f0()

多态  (python原生直接就是多态)

python更多的支持的是鸭子模型,只要会叫就可以

classAnimal:defchi(self):print("会吃")classGoldenMonkey(Animal):defchi(self):print("用手拿着吃, 五花八门")classTiger(Animal):defchi(self):print("老虎吃肉")classElephant(Animal):defchi(self):print("大象吃香蕉")defwei_animal(ani):

ani.chi()

t=Tiger()

m=GoldenMonkey()

e=Elephant()

wei_animal(t)

wei_animal(m)

wei_animal(e)

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值