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

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日

相关文章

  • 使用单例模式来打造activitymanager类

    使用单例模式来打造ActivityManager类 在Android应用程序中,管理Activity是一个很重要的问题,可以使用一个单例模式实现Activity的管理。 单例模式概述 单例模式是一种常用的设计模式,它可以确保一个类只有一个实例,提供对这个实例特定访问点。在Java中,实现单例模式一般有两种方式: 饿汉式:在程序启动时即实例化,线程安全,但不考…

    其他 2023年3月28日
    00
  • 关于python:pycharm“运行配置” 要求“脚本参数”

    关于Python: PyCharm“运行配置”要求“脚本参数”的攻略 在使用PyCharm进行Python开发时,我们经常需要在运行Python脚本时传递一些参数。本攻略将详细介绍如何在PyCharm中配置脚本参数,并提供两个示例。 方法1:使用PyCharm的“运行配置”功能 PyCharm提供了一个“运行配置”功能,可以方便地配置Python脚本的运行参…

    other 2023年5月9日
    00
  • Git+VS2015修改提交代码以及解决冲突

    Git+VS2015修改提交代码以及解决冲突 Git是常用的版本控制工具,而Visual Studio 2015是常用的IDE,本文将介绍如何使用Git和VS2015进行代码修改、提交、拉取、推送以及解决冲突等操作。 安装Git 首先需要安装Git客户端,官方网站为https://git-scm.com/,选择相应的操作系统的安装程序,按照提示进行安装即可。…

    其他 2023年3月28日
    00
  • weblogic服务器的简单使用(一)

    WebLogic服务器的简单使用(一) WebLogic是一款Java应用服务器,可以用于部署和运行Java应用程序。本文将介绍如何使用WebLogic服务器,包括安装WebLogic服务器、创建域、部署应用程序等。 安装WebLogic服务器 在使用WebLogic服务器之前,需要先安装WebLogic服务器。可以从Oracle官网(https://www…

    other 2023年5月5日
    00
  • 配置中心apollo的设计原理

    配置中心Apollo的设计原理 Apollo是携程开源的一款分布式配置中心,它提供了统一的配置管理、配置发布、配置等功能。本文将介绍Apollo的设计原理,包括如何实现配置动态更新、何保证配置的高可用性等。 Apollo的核心概念 Apollo的设计原理基于以下几个核心概念: Namespace 是Apollo中的一个概念,它代表了一组相关的配置项。每个Na…

    other 2023年5月7日
    00
  • 详解C++构造函数

    下面是“详解C++构造函数”的完整攻略: 什么是构造函数 在 C++ 中,构造函数是一种特殊的函数,用于在对象创建时初始化对象的数据成员。它的名字和类名相同,没有返回值,没有 void 关键字,可以有参数,也可以没有参数。构造函数的目的是确保每次对象创建时都能正确地初始化数据成员。 构造函数的分类 默认构造函数 如果一个类没有定义构造函数,那么编译器会自动为…

    other 2023年6月26日
    00
  • while循环(break、continue)

    while 循环 (break、continue) 在 Python 中,while 循环用于重复执行程序,直到指定的条件不再满足为止。Python 的 while 循环与其他编程语言类似,但还有一些特殊情况需要注意,例如 break 和 continue 语句。 while 循环语法 while 循环的语法如下: while 条件: # 执行语句 其中,条…

    其他 2023年3月28日
    00
  • 分析设计模式之模板方法Java实现

    分析设计模式之模板方法是一种行为型设计模式,它定义了一个操作中的算法骨架,将一些步骤延迟到子类中实现,使得子类可以不改变一个算法的骨架结构,即可重定义该算法的某些特定步骤。以下是完整的攻略: 模板方法Java实现 1. 定义抽象类 首先,我们需要定义一个抽象类,即模板类,该类中包含算法骨架和一些基本方法。这些基本方法可以是抽象方法、具体方法和钩子方法。 pu…

    other 2023年6月26日
    00
合作推广
合作推广
分享本页
返回顶部