python中面向对象的缺点_python中面向对象简述

一,面向对象

在编程的思想中可以大致分为两种思想:

1.面对过程编程思想:

面向过程编程就好比把整个需求的每个过程具体化,流程化。其中优缺点是可见分明的:

优点:可以将复杂的逻辑,经过每个过程后,变的简单明了化。

缺点:可拓展性,维护性等都非常的差。

使用场景一般都是在不经常变动的程序里,比如电脑的操作系统,计算器。

2.面向对象编程思想:

面向对象编程,说白了就是在对象的基础上来完成需求。换句话说就是可以站在上帝视角来编程,你需要什么对象,就可以创造什么样的对象。让对象与对象之间相互解决。从简单的操作者变成了指挥者。

优点:拓展性,维护性强,是具有灵活性,可重性的。

缺点:使得程序更加的复杂化,不可预知性。

使用场景一般是 拓展性强的项目中。

总结:根据不同场景结合不同的编程思想。促进编程效率。在面向对象中,函数称为函数属性,把变量称为数据属性

二,类和对象

1.什么是对象?

对象就是单个存在的事物,并且具有自己特征与行为。也就是特征和相关行为的一个结合体

2.什么是类?

类其实是人们来抽象定义的一个概念,把有相同行为和相同特征的事物放在一起,并称之为某种类。

3.类与对象的关系

在现实世界中,是先有对象,再有类的。

而在程序中,你必须先定义一个类来告诉计算机这个对象的特征与行为。

三,创建类和对象

定义类的语法:

class类的名称:#类中描述属性和技能

#描述属性用变量

#描述行为用函数

#类名称也要做到见名知意,并且使用驼峰体

定义对象的语法:

classPerson:passp= Person() #创建对象

属性的写法:

当属性写在类中时,这个属性是全部对象的公共属性。

当属性写在对象里时,那么这个属性是这个对象的特有属性。

如果类和对象存在同样的属性,那么首先会找对象里是否有该属性,如果没有,再去类中找。

classTeacher:

school= 'oldboy' #公用属性

t1=Teacher()

t1.name= 'tanke' #独特属性

t1.age = 18

属性的增删改查

增加属性

对象变量名称.属性名称=属性值

删除属性del对象的变量名称.属性名称

修改

对象.属性=新的值

查看属性 访问的是对象的所有属性print(对象.__dict__)

访问对象的类信息print(对象.__class__)

四,__init__方法

双下 init 叫做初始化,它的本质上是个函数

特点:

1.当实例化对象的时候,会自动执行初始化方法。

2.会自动将对象作为第一个参数传入,参数名称为self. 不建议更改参数名

功能:用户给对象赋初始值

classDog:def __init__(self,name,age)

self.name=name

self.age=age

t= Dog('泰迪',2)

t1=Dog('哈士奇',1) #创建对象

这个函数不能有返回值

对象的精髓就是将数据和处理数据的函数结合在一起。

那么拿到一个对象就是拿到了一个处理的数据和一个处理数据的函数。

五,对象的绑定方法

在类的方法中,默认的都是对象绑定法。

当使用对象调用该函数时,会自动传入对象自己作为第一个参数

当使用类名来调用该函数时,该函数就是个普通函数,有几个参数就要传几个参数

classStudent:def __init__(self,name):

self.name=namedefsay_hi(self):# self就是对象,绑定在该函数里print("hello my name is %s" % self.name)

六,类绑定方法

类绑定方法是用 @classmethod 来装饰的。

特点:不管是用类调用还是对象调用,都会自动传入类本身作为第一个参数

当函数逻辑需要访问对象中的数据时就绑定给对象

当函数逻辑需要访问到类中的数据时,就绑定给类

七,非绑定方法

@staticmethod 也叫静态方法,既不访问对象的数据也不访问类的数据

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值