微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

通过Python理解面向对象程序设计

本文通过Python带大家理解何为面向对象程序设计. 要理解面向对象程序设计的概念, 要从理解对象, 类和方法说起.
有了基础之后了解面向对象编程的主要概念: 封装, 多态, 继承, 抽象, 组合.

01 对象

何为对象:
1、表示所开发的应用程序内的实体.
2、实体之间可以交互来解决现实世界的问题.
3、如, Person是实体, Car也是实体. Person开着Car到另一地方.

02 类

何为类:
1、可以定义对象的属性和行为. 属性是数据成员, 行为由成员函数表示.
2、类里面包含了构造函数, 构造函数的作用是初始化状态对象.
3、类易于重复使用.

03 方法

何为方法:
1、表示对象的行为.
2、可以对属性处理, 实现所需功能.
代码:

class Person():
  def __init__(self, name, age):
    self.name = name
    self.age = age
    
  def get_preson(self):
    return "<Person ({0}, {1})>".format(self.name, self.age)
    

if __name__ == "__main__":
    p = Person("A", 18)
    print("对象类型为: ", type(p), "内存地址为: ", id(p))

04 封装

封装有几个特点为:
1、对象的行为对于外部世界是不可见的, 或者说对象的状态信息是私密的.
2、不能直接操作去改变对象的内部状态. 需要通过发送消息去请求对象来改变内部状态.
3、Python中的封装不是隐式的, 了解C++基础知道在C++中有关键字public, private, protected等关键字用于封装.

05 多态

多态的类型:

1、对象根据输入参数来提供方法的不同实现.
2、不同类型的对象可以使用相同的接口.

比如通过索引可以访问字符串, 元组, 列表如:

a = "John"
b = (1, 2, 3)
c = [3, 4, 5, 6]
print(a[1], b[0], c[2])

06 继承

何为继承:

1、表示一个类可以继承父类的大部分功能.
2、可以被描述为一个重用基类中定义的功能,并且可以独立扩展.
3、继承可以根据不同类的对象之间的关系建立层次结构. Python支持多重继承. 看代码:

class A:
  def a(self):
    print("a")
    
class B(A):
  def b(self):
    print("b")
    

if __name__ == "__main__":
  b = B()
  b.a()

07 抽象

何为抽象:

1、提供了简单的接口, 通过该接口与类的对象进行交互, 并可以调用接口中定义的各个方法.
2、将内部类的复杂性抽象为一个接口, 用户使用的时候就不需要知道内部如何实现的了. 看例子:

class Adder:
   def __init__(self):
      self.sum = 0
      
   def add(self, value):
      self.sum += value


if __name__ == "__main__":
    acc = Adder()
    # 计算 1到99的和
    for i in range(1, 100):
       acc.add(i)
    print(acc.sum)

08 组合

何为组合:

1、是一种将对象或类组合成更复杂的数据结构或软件实现的方法.
2、无需继承就可以调用其他模块中的成员函数,实现了基本功能的跨模块使用. 看代码:

class A():
   def a(self):
     print("a")
     
 
class B():
   def b(self):
     print("b")
     A().a()
     
     
if __name__ == "__main__":
   b = B()
   b.b() #这里也调用了A类中的a()方法, 不用继承的方式.

了解上面的内容, 我想大家对"面向对象"会有更好的理解.

如果喜欢本文请关注公众号:

在这里插入图片描述

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。

相关推荐