Python 面向对象部分知识点小结

yizhihongxing

Python 面向对象部分知识点小结

1. 类和对象

在Python中,一切皆为对象,对象是类的实例化。类是一种自定义的数据类型,它定义了对象的属性和方法。

1.1 类的定义和实例化

使用class关键字定义一个类,类名通常采用驼峰命名法。通过类名后加括号的方式可以实例化一个对象。

示例代码:

class Person:
    def __init__(self, name, age):
        self.name = name
        self.age = age

person1 = Person(\"Alice\", 25)
person2 = Person(\"Bob\", 30)

1.2 属性和方法

类中的属性是对象的特征,方法是对象的行为。属性可以是变量,方法可以是函数。

示例代码:

class Person:
    def __init__(self, name, age):
        self.name = name
        self.age = age

    def say_hello(self):
        print(\"Hello, my name is\", self.name)

person = Person(\"Alice\", 25)
person.say_hello()  # 输出:Hello, my name is Alice

2. 继承和多态

继承是面向对象编程的重要概念,它允许一个类继承另一个类的属性和方法。多态是指同一个方法名可以在不同的类中有不同的实现。

2.1 继承

使用class 子类名(父类名)的方式实现继承。子类可以继承父类的属性和方法,并且可以添加自己的属性和方法。

示例代码:

class Animal:
    def __init__(self, name):
        self.name = name

    def speak(self):
        pass

class Dog(Animal):
    def speak(self):
        print(\"Woof!\")

class Cat(Animal):
    def speak(self):
        print(\"Meow!\")

dog = Dog(\"Buddy\")
dog.speak()  # 输出:Woof!

cat = Cat(\"Kitty\")
cat.speak()  # 输出:Meow!

2.2 多态

多态允许不同的对象对同一方法有不同的实现。通过方法的重写和方法的重载可以实现多态。

示例代码:

class Shape:
    def area(self):
        pass

class Rectangle(Shape):
    def __init__(self, width, height):
        self.width = width
        self.height = height

    def area(self):
        return self.width * self.height

class Circle(Shape):
    def __init__(self, radius):
        self.radius = radius

    def area(self):
        return 3.14 * self.radius * self.radius

shapes = [Rectangle(4, 5), Circle(3)]
for shape in shapes:
    print(\"Area:\", shape.area())

3. 封装和访问控制

封装是将数据和方法包装在类中,通过访问控制来限制对类的属性和方法的访问。

3.1 访问控制

在Python中,属性和方法的访问控制通过命名约定来实现。以单下划线_开头的属性和方法被视为私有的,不应该被外部访问。

示例代码:

class Person:
    def __init__(self, name, age):
        self._name = name
        self._age = age

    def _say_hello(self):
        print(\"Hello, my name is\", self._name)

person = Person(\"Alice\", 25)
print(person._name)  # 输出:Alice
person._say_hello()  # 输出:Hello, my name is Alice

3.2 属性的封装

通过使用@property装饰器和setter方法,可以实现对属性的封装,控制属性的读取和修改。

示例代码:

class Person:
    def __init__(self, name, age):
        self._name = name
        self._age = age

    @property
    def name(self):
        return self._name

    @name.setter
    def name(self, value):
        self._name = value

person = Person(\"Alice\", 25)
print(person.name)  # 输出:Alice
person.name = \"Bob\"
print(person.name)  # 输出:Bob

以上是Python面向对象部分的知识点小结,涵盖了类和对象、继承和多态、封装和访问控制等内容。希望对你有所帮助!

本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:Python 面向对象部分知识点小结 - Python技术站

(0)
上一篇 2023年8月8日
下一篇 2023年8月8日

相关文章

  • JVM学习笔记一:内存管理

    JVM学习笔记一:内存管理的完整攻略 Java虚拟机(JVM)是Java语言的核心,它负责将Java代码转换为可执行的机器码。在JVM中,内存管理是非常重要的一部分,它负责管理Java程序的内存分配和回收。本文将介绍JVM内存管理的基本原理和常用的内存管理技术。 JVM内存结构 JVM内存结构分为以下几个部分: 程序计数器(Program Counter R…

    other 2023年5月5日
    00
  • sql实现修改表字段名的方法详解

    下面是“SQL实现修改表字段名的方法详解”的攻略: 方法一:使用ALTER TABLE语句 使用ALTER TABLE语句是最常见的修改表字段名的方法。具体步骤如下: 将表重命名,使用RENAME TABLE语句。例如要修改表employee的salary字段名为income,则执行以下语句: SQL RENAME TABLE employee TO emp…

    other 2023年6月25日
    00
  • Win10锁屏状态怎么设置打开任意应用程序?

    下面是详细讲解Win10锁屏状态如何设置打开任意应用程序的完整攻略: 1. 打开“组策略编辑器”工具 按下“Win+R”键打开“运行”窗口,输入“gpedit.msc”,并点击“确定”按钮打开“组策略编辑器”工具。 2. 找到“计算机配置”中的“Windows 设置” 在“组策略编辑器”窗口的左侧栏中,依次展开“计算机配置”、“管理模板”、“Windows …

    other 2023年6月25日
    00
  • Android中RecyclerView布局代替GridView实现类似支付宝的界面

    Android中RecyclerView布局代替GridView实现类似支付宝的界面攻略 在Android中,我们可以使用RecyclerView布局来代替GridView,以实现类似支付宝的界面。RecyclerView是一个强大的列表控件,它提供了更好的性能和灵活性。 以下是实现该界面的完整攻略: 步骤1:添加依赖 首先,确保在项目的build.grad…

    other 2023年8月20日
    00
  • 深度分析正则(pcre)最大回溯/递归限制

    深度分析正则(pcre)最大回溯/递归限制 正则表达式是一种描述字符模式的工具,由于其强大的表达能力和广泛的应用场景,成为了数据分析、文本挖掘等领域的重要工具。正则表达式引擎可以进行的匹配步骤是有限的,当模式中包含递归或回溯时,引擎可能会一直重复步骤,导致匹配效率降低,甚至出现崩溃等问题。 为了避免这种状况,正则表达式引擎实现了最大回溯/递归限制,即“PCR…

    other 2023年6月27日
    00
  • IOS面试大全之常见算法

    IOS面试大全之常见算法:完整攻略 在IOS开发的面试中,经常会被问到算法相关的问题。因此,我们需要了解一些常见的算法,才能在面试中更好地展现自己的优势。以下是“IOS面试大全之常见算法”的完整攻略: 常见算法分类 常见的算法可以分为以下几类: 排序算法(如冒泡排序、快速排序等) 查找算法(如二分查找、哈希查找等) 字符串匹配算法(如KMP算法等) 图算法(…

    other 2023年6月27日
    00
  • python-sip参考指南-介绍

    以下是“Python SIP参考指南-介绍”的完整攻略: Python SIP参考指南-介绍 SIP是一种用于创建Python扩展模块的工具。本攻略将介绍SIP的基本概念和用法,帮助您创建Python扩展模块。 SIP的基本概念 SIP是一种用于创建Python扩展模块的工具。它允许您使用C++编写Python扩展模块,并将其与Python解释器集成。SIP…

    other 2023年5月7日
    00
  • 新手如何正确使用CLion之输出hello world

    新手如何正确使用CLion之输出hello world 在程序开发的过程中,输出hello world是过程中必须要进行的操作,因为它可以帮助我们初步了解程序开发环境的运行情况。本篇文章将介绍如何通过CLion来输出hello world。 前置条件 在开始操作前,需要保证以下条件已经具备: 已经安装好了CLion; 已经安装好了编译器,如:GCC。 操作步…

    其他 2023年3月28日
    00
合作推广
合作推广
分享本页
返回顶部