首页 > 编程知识 正文

简述面向对象的三大特征,python面向过程还是对象

时间:2023-05-03 18:41:04 阅读:50225 作者:4634

另一方面,面向对象的三个特征是,介绍了Python是面向对象语言,也支持面向对象编程的三个特性:继承、封装(隐藏)、多态性。

1、封装(隐藏) )

隐藏对象的属性和实现细节,只对外提供必要的方法。

在“专用属性,专用方法”中,实现“封装”。 Python追求简洁的语法

2、继承

继承允许子类具有父类的特性,从而提高代码的重用性。 在设计上是增量进化,在现有父类的设计不变的情况下,可以添加新功能或改进现有算法。

3、多态性

多态性是指相同的方法调用在不同的对象中有不同的行为。 同样的休息方式,休息方式因人而异的例子在生活中很常见。 kndbd的休息是睡觉,强壮的棒球休息是玩游戏,程序员的休息是“敲几行代码”。 二、继承继承是面向对象编程的重要特征,也是实现“代码复用”的重要手段。

当新类从设计的类继承时,它仍然具有现有类的特征,从而大大减少了工作

难度。 现有类称为“父类或基类”,新类称为“子类或派生类”。

1、语法格式Python支持多个继承,一个子类可以继承多个父类。 继承的语法格式。

class子类名称(父类1[,父类2, ] ) :

同类体

如果在类定义中未指定父类,则缺省父类为object类。 也就是说,object是所有类的父级

班级。 定义了所有类共有的缺省实现,如__new__ ()。

定义子类时,必须在该构造函数中调用父类的构造函数。 调用格式如下:

类名. __init__(self,参数列表)

classperson3360def_init_(self,name,age ) : self.name=nameself._ _ age=agedefsay _ age (self ) ) elf 子类不会自动调用父类的__init__ ()。 我#们必须明确地调用那个。 if _ _ name _==' _ _ main _ ' : s=student ('诸葛',18,1 ) s.say_age ) 2、类成员继承和重写1 .成员继承:

2 .方法重写:通过子类重新定义父类中的方法(也称为“重写”)来重写父类中的方法

classperson3360def_init_(self,name,age ) : self.name=nameself._ _ age=agedefsay _ age (self ) ) elf grade ) :self.grade=gradepeer age ) defsay_age(self ) :print ) self.age,'的年龄为',self.age ' #构造函数根据需要,不是必须的。 子类不会自动调用父类的__init__ ()。 我#们必须明确地调用那个。 if _ _ name _==' _ _ main _ ' : s=student ('诸葛',18,1 ) s.say_age ) (3,super ) )在子类中定义时

super ) )表示父类的定义,而不是父对象。

classa:defsay(self ) :print(a: )、self(print(sayAAA ) ) class B(A ) : def say (self ) 3360 # a . 调用super ) ) ) 652 if _ _ name _==' _ main _ : b=b (b.say ) 4,设计模式_工厂模式实现工厂模式为创建者和

统一的管理和控制。

classcarfactory :差速器(自、 brand (3360 if brand=='1' :返回one ) elif brand=='2' :返回two ) elif brand=='3' :返回three ' claland 无法创建ee : pass factory=car factory (C1=factory.create car ) '1' (C2=fac ctory ) print(C2 ) 5,设计模式_单

访问此实例的个全局接入点。

单实例模式只生成一个实例对象,减少了系统资源的开销。 如果生成对象需要比较

如果有许多资源(如读取配置文件和生成其他依赖对象),则可以生成“单个实例对象”并使其永久

驻留在内存中大大减少了开销。

class One: __obj=None #表示此单实例__init_flag=True def __new__(cls,*args, *Kwargs(: )是名为One的类中的类属性if cls.__obj==None: # object是类的默认父类cls.__obj=object.__new__ ) cllect (名称) 3360 if one._ init _ flag 3360 prining

版权声明:该文观点仅代表作者本人。处理文章:请发送邮件至 三1五14八八95#扣扣.com 举报,一经查实,本站将立刻删除。