python——面向对象(1)类与实例、对象和封装

Python是一门解释型、面向对象以及动态数据类型的高级程序设计语言。正因为如此,在Python中创建一个类和对象是很容易的。面向对象编程OOP——Object Oriented Programming,是一种程序设计思想。OOP把对象作为程序的基本单元,一个对象包含了数据和操作数据的函数。面向过程的程序设计把计算机程序视为一系列的命令集合,即一组函数的顺序执行,为了简化程序设计,面向过程把函数继续切分为子函数,即把大块函数通过切割成小块函数来降低系统的复杂度。而面向对象的程序设计把计算机程序视为一组对象的集合,而每个对象都可以接收其他对象发过来的消息,并处理这些消息,计算机程序的执行就是一系列消息在各个对象之间传递

面向对象编程的基本概念

  • 类(Class):是对象的蓝图或模板,定义了对象的属性和方法。
  • 对象(Object):是类的实例,具有类定义的属性和方法。
  • 属性(Attribute):是定义在类中的变量,用于描述对象的特征。
  • 方法(Method):是定义在类中的函数,用于描述对象的行为。
  • 封装(Encapsulation):将数据(属性)和操作数据的方法(函数)捆绑在一起,形成一个整体(即对象)。
  • 继承(Inheritance):一个类可以继承另一个类的属性和方法,继承是类之间的一种关系,用于实现代码的重用。
  • 多态(Polymorphism):允许不同类的对象对同一消息作出响应,即同一操作作用于不同的对象,可以有不同的解释,产生不同的执行结果。

类与实例

面向对象最重要的概念就是类(Class)和实例(Instance),必须牢记类是抽象的模板,比如Student类,而实例是根据类创建出来的一个个具体的“对象”,每个对象都拥有相同的方法,但各自的数据可能不同 。
类的定义格式如下图所示
在这里插入图片描述
定义一个简单的类

class Student:
    def __init__(self, n, s):
        self.name = n
        self.__score = s
    def __a(self):
        print("1")
    def print_sco(self):
        self.__a()
        print(f"{self.name}的成绩是{self.__score}")
    def get_grade(self):
        if self.__score > 90:
            print("A")
        else:
            print("B")
if __name__ == '__main__':
    ww = Student("ww", 88)
    ww.print_sco()
#输出结果:1
#ww的成绩是88

对象

“对象”(Object)是计算机科学和编程中的一个核心概念,它代表了现实世界中的实体或概念在程序中的抽象表示。在编程中,对象通常由数据和操作这些数据的函数(也称为方法)组成。这种结构使得对象能够模拟现实世界的实体,如人、车、动物或任何可以想象的事物。
面向对象主要有三大特点:封装、继承和多态。

封装

封装(Encapsulation)是面向对象编程(OOP)中的一个核心概念,它指的是将对象的属性和方法(也称为操作或服务)结合成一个独立的单元,并尽可能隐藏对象的内部细节。封装的目的是保护对象的状态信息不被外部随意访问和修改,同时提供一种受控的方式来访问和修改这些状态信息。

封装的特点

  • 信息隐藏:封装通过限制对对象内部属性和方法的直接访问,隐藏了对象的内部实现细节。这使得对象的使用者只能通过对象提供的公共接口(即方法)来与对象进行交互,而无法直接访问或修改对象的私有属性。
  • 访问控制:封装允许类设计者指定哪些属性和方法是可以被外部访问的(通常是公开的),哪些是只能在类的内部访问的(通常是私有的或受保护的)。这种访问控制机制有助于保护对象的状态不被意外破坏,并保证了数据的可靠性和一致性。
  • 接口提供:封装为对象提供了一个清晰的接口,使得对象的使用者可以通过这个接口来与对象进行交互。这个接口定义了对象可以执行的操作和这些操作所需的参数,以及操作的结果。

封装的好处

  • 提高代码的安全性:通过隐藏对象的内部实现细节,封装可以防止外部代码直接访问和修改对象的私有属性,从而减少了数据被意外破坏的风险。
  • 提高代码的复用性:封装使得类的内部实现细节与外部接口分离,这使得类更容易被复用。因为只要接口保持不变,类的内部实现就可以在不影响外部代码的情况下进行修改。
  • 提高代码的可维护性:封装使得类的内部实现细节对外部代码是透明的,这意味着当类的内部实现发生变化时,只要接口保持不变,外部代码就不需要修改。这大大降低了代码维护的复杂度和成本。
  • 18
    点赞
  • 12
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
### 回答1: 面向对象的程序设计分为两种,一种是基于的,另一种是基于原型的。其中基于的程序设计是最常见的一种,它主要涉及到两个概念,即对象是一个抽象的概念,它描述了一具有相同属性和方法的对象,而对象则是具体的实例。在基于的程序设计中,用于描述对象的属性和方法,而对象则是的具体实现。因此,基于的程序设计更注重对象封装、继承和多态等概念。 ### 回答2: 面向对象编程是一种程序设计范式,它把程序看作是一组对象的集合,每个对象都有一个特定的属性和方法。在Python中,每个对象都是一个实例是一个抽象的概念,用于表示一组相似的对象对象实例,它继承了的属性和方法,同时可以拥有自己的属性和方法。 在Python中,定义的语法为: class ClassName: # 属性和方法 在定义中,可以定义属性和方法,的属性是一些数据,用来描述的特征;的方法是一些函数,用来描述的行为。同时,还可以继承其他的属性和方法,通过继承,子可以重用父的代码,同时也可以增加自己的属性和方法。 在Python中,对象的创建和使用的语法为: object_name = ClassName() 在对象的创建过程中,会调用的构造函数(__init__()方法),用来初始化对象的属性和方法。然后,可以使用对象的属性和方法来完成具体的任务。 在面向对象编程中,有三个重要的概念,分别是封装、继承和多态。封装是指把数据和行为包装在一个中,对外部隐藏具体的实现细节;继承是指子可以继承父的属性和方法,在子中可以重写父的方法和添加自己的方法;多态是指同一个方法可以在不同的对象上产生不同的结果,通过实现多态,程序可以更加灵活和可扩展。 最后,在Python中,还可以通过__str__()方法来自定义对象的字符串表示方式,方便输出和调试。同时,还可以通过@property和@setter装饰器来实现属性的封装和保护。 总之,对象面向对象编程的基础,它提供了一种更加灵活和可扩展的编程方式,同时也对程序的设计和架构提出了更高的要求。因此,熟练掌握对象的相关知识,是Python编程的基础和必备技能。 ### 回答3: Python中的面向对象编程(Object-Oriented Programming,OOP)是一种将数据和行为封装在一起,以创建对象为中心的思想。在Python中,一切皆为对象,从简单的数字、字符串到复杂的列表、元组都是对象面向对象(Object-Oriented)编程中最基本的两个概念是对象是一种数据型,是一组相关数据和方法的描述。其实就是一个对象的模板,包含了它所描述的对象共有的属性和方法。Python中定义的方法比较简单,使用关键字`class`即可,例如: ```python class Dog: def __init__(self, name, age): self.name = name self.age = age def bark(self): print("汪汪!") ``` 上述代码定义了一个Dog,包含了Dog对象共有的属性(name和age)和方法(bark)。通过关键字`def`定义Dog的方法,其中`__init__`方法是一个特殊的方法,用于初始化对象属性。 当我们需要使用Dog时,需要将它实例化为一个对象。例如: ```python dog1 = Dog("小黑", 3) dog1.bark() # 输出:汪汪! ``` 上述代码创建了一个Dog对象,设置了它的name为“小黑”,age为3,然后调用了Dog的方法bark。 另外,Python中还有一些内置函数,可以用于操作对象。例如: - `type`函数:用于返回对象型。使用方法为`type(object)` - `isinstance`函数:用于检查对象是否为指定实例。使用方法为`isinstance(object, classinfo)` - `hasattr`函数:用于检查对象是否具有指定的属性。使用方法为`hasattr(object, name)` - `getattr`函数:用于获取对象的属性值。使用方法为`getattr(object, name[, default])` - `setattr`函数:用于设置对象的属性值。使用方法为`setattr(object, name, value)` 以上是Python中定义和使用的基本语法和函数,掌握了这些知识后,可以尝试设计自己的并应用到实际的编程项目中。

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值