• 欢迎访问搞代码网站,推荐使用最新版火狐浏览器和Chrome浏览器访问本网站!
  • 如果您觉得本站非常有看点,那么赶紧使用Ctrl+D 收藏搞代码吧

Python 面向对象编程的核心概念知识点简介

python 搞java代码 3年前 (2022-05-21) 11次浏览 已收录 0个评论

本文的文字及图片来源于网络,仅供学习、交流使用,不具有任何商业用途,如有问题请及时联系我们以作处理。

以下文章来源于 无量测试之道 ,作者: 无量测试之道

 

面向对象编程的核心概念:封装,抽象,多态、继承、组合

封装:

第一个概念:在面向对象编程中,对象将变量和方法集中在一个地方,即对象本身。

第二个概念:指的是隐藏类的内部数据,避免客户端代码直接进行访问。

<span>class</span><span> Data:
    </span><span>def</span> <span>__init__</span><span>(<a href="https://www.gaodaima.com/tag/self" title="查看更多关于self的文章" target="_blank">self</a>):
        self.<a href="https://www.gaodaima.com/tag/list" title="查看更多关于list的文章" target="_blank">list</a>1</span>=[22,33,44,55,66<span>]

    </span><span>def</span><span> chang_list(self,index,num):
        self.list1[index]</span>=<span>num

data1</span>=<span>Data()
data1.list1[0]</span>=100
<span>print</span><span>(data1.list1)

data2</span>=<span>Data()
data2.chang_list(0,</span>100<span>)
</span><span>print</span>(data2.list1)

www#gaodaima.com来源gaodai#ma#com搞*代#码网搞代码

 

抽象:

它是指剥离事物的诸多特性,使其只保留最基本的物质的过程。在面向对象编程中,使用类进行对象建模时就会用到抽象的技巧。

<span>import</span><span> abc
</span><span>class</span> Animal(metaclass=<span>abc.ABCMeta):
    @abc.abstractmethod </span><span>#</span><span>抽象的对象方法</span>
    <span>def</span><span> sound(self):
        </span><span>pass</span><span>
    @abc.abstractclassmethod</span><span>#</span><span>抽象的类方法</span>
    <span>def</span><span> test1(cls):
        </span><span>pass</span><span>
    @abc.abstractstaticmethod</span><span>#</span><span>抽象的静态方法</span>
    <span>def</span><span> test2(self):
        </span><span>pass</span>

<span>class</span><span> Dog(Animal):
    </span><span>def</span><span> sound(self):
        </span><span>print</span>(<span>"</span><span>wang wang</span><span>"</span><span>)

    @classmethod
    </span><span>def</span><span> test1(cls):
        </span><span>print</span>(<span>"</span><span>class of method</span><span>"</span><span>)

    @staticmethod
    </span><span>def</span><span> test2():
        </span><span>print</span>(<span>"</span><span>static of method</span><span>"</span><span>)

dog</span>=<span>Dog()
dog.sound()
dog.test1()
Dog.test1()
dog.test2()
Dog.test2()</span>

 

继承:

1)、将公共的属性和方法放到父类中,自己只考虑特有的属性和方法。

2)、覆盖父类的方法即重写父类方法,在运行中只会调用子类中重写的方法不用调用父类中的方法。

3)、子类拥有一个父类叫作单继承,子类可以拥有多个父类,并且具有所有父类的属性和方法。

<span>class</span><span> Student:
    </span><span>def</span><span> study(self):
        </span><span>print</span>(<span>"</span><span>学生要学习</span><span>"</span><span>)
    </span><span>def</span><span> practice(self):
        </span><span>print</span>(<span>"</span><span>学习完成要练习</span><span>"</span><span>)

</span><span>class</span><span> HighStudent(Student):
    </span><span>def</span><span> study_compute(self):
        </span><span>print</span>(<span>"</span><span>高中同学还要学习计算机</span><span>"</span><span>)

hs</span>=<span>HighStudent()
hs.study()
hs.practice()
hs.study_compute()</span>

 

多态:

1)、指的是为不同的基础形态(数据类型)提供着接口的能力,接口指的是函数和方法。

2)、顾名思义,多态就是多种表现形态的意思,它是一种机制,一种能力,而非某个关键词。它在类的继承中得以实现,在类的方法调用中得以体现。

3)、多态意味着变量并不知道引用的对象是什么,根据引用对象的不同表现不同的行为方式。

4)、多态以封装和继承为前提,不同的子类对象调用相同的方法,产生不同的执行效果。它可以增加代码的灵活度,以继承和重写父类的方法为前提,调用方法不会影响到类的内部设计

<span>class</span><span> Animals(object):
    </span><span>def</span> <span>__init__</span><span>(self,name):
        self.name</span>=<span>name
    </span><span>def</span><span> eat(self):
        </span><span>print</span>(self.name+<span>"</span><span> is eating</span><span>"</span><span>)
</span><span>class</span><span> Cat(Animals):
    </span><span>def</span> <span>__init__</span><span>(self,name):
        super(Cat, self).</span><span>__init__</span><span>(name)
</span><span>class</span><span> Pig(Animals):
    </span><span>def</span> <span>__init__</span><span>(self,name):
        super(Pig, self).</span><span>__init__</span><span>(name)

</span><span>class</span><span> Person():
    </span><span>def</span><span> feedAnimal(self,animal):
        animal.eat()

cat</span>=Cat(<span>"</span><span>tom</span><span>"</span><span>)
pig</span>=Pig(<span>"</span><span>peiqi</span><span>"</span><span>)
tony</span>=<span>Person()
tony.feedAnimal(cat)
tony.feedAnimal(pig)</span>

 

组合:

1)、通过组合技巧将一个对象作用变量保存在另一个对象中,可以模拟拥有关系。

2)、它是一种将对象或类组合成更复杂的数据结构或构件实现的方法。

3)、在组合中,一个对象可用于调用其他模块中的成员函数,这样一来,无需通过继承就可以实现基本功能的跨模块调用。

<span>class</span><span> Monkey():
    </span><span>def</span> <span>__init__</span><span>(self,name,owner):
        self.name</span>=<span>name
        self.owner</span>=<span>owner

</span><span>class</span><span> Persons():
    </span><span>def</span> <span>__init__</span><span>(self,name):
        self.name</span>=<span>name

mike</span>=Persons(<span>"</span><span>mike</span><span>"</span><span>)
mickMouse</span>=Monkey(<span>"</span><span>goldeMonkey</span><span>"</span><span>,mike)
</span><span>print</span><span>(mickMouse.owner.name)

</span><span>class</span><span> A(object):
    </span><span>def</span><span> a1(self):
        </span><span>print</span>(<span>"</span><span>a1</span><span>"</span><span>)
</span><span>class</span><span> B(object):
    </span><span>def</span><span> b1(self):
        </span><span>print</span>(<span>"</span><span>b1</span><span>"</span><span>)
        A().a1()
bb</span>=<span>B()
bb.b1()</span>

 

总结:

今天和大家分享的是面向对象编程的核心概念:封装,抽象,多态、继承、组合,可以结合代码示例本地去运行着感受这些概念的含义。


搞代码网(gaodaima.com)提供的所有资源部分来自互联网,如果有侵犯您的版权或其他权益,请说明详细缘由并提供版权或权益证明然后发送到邮箱[email protected],我们会在看到邮件的第一时间内为您处理,或直接联系QQ:872152909。本网站采用BY-NC-SA协议进行授权
转载请注明原文链接:Python 面向对象编程的核心概念知识点简介

喜欢 (0)
[搞代码]
分享 (0)
发表我的评论
取消评论

表情 贴图 加粗 删除线 居中 斜体 签到

Hi,您需要填写昵称和邮箱!

  • 昵称 (必填)
  • 邮箱 (必填)
  • 网址