Python面向对象之成员相关知识总结

下面就是详细讲解“Python面向对象之成员相关知识总结”的完整攻略:

Python面向对象之成员相关知识总结

成员属性

实例属性

实例属性是绑定在对象上的,每一个对象可以拥有不同的实例属性,在函数内部以self进行访问。

class Car:
  def __init__(self):
    self.color = 'white'
    self.speed = 0

car1 = Car()
car2 = Car()

car1.color = 'red'
car2.speed = 60

类属性

类属性是绑定在类上的,所有的对象都共同拥有同样的类属性。在函数内部以类名.类属性名进行访问。

class Car:
    car_type = '普通车'
    def __init__(self,color,speed):
        self.color = color
        self.speed = speed

car1 = Car('white',50)
car2 = Car('black',65)

print(Car.car_type) # 普通车

成员方法

实例方法

实例方法是绑定在对象上的,可以使用对象进行调用。

class Car:
    def __init__(self, color, speed):
        self.color = color
        self.speed = speed

    def show_info(self):
        print("这辆车是%s,速度为%d" % (self.color, self.speed))

car1 = Car('white',50)
car1.show_info() # 这辆车是white,速度为50

类方法

类方法是绑定在类上的,使用@classmethod装饰器进行定义。

class Car:
    car_type = '普通车'
    def __init__(self, color, speed):
        self.color = color
        self.speed = speed

    @classmethod
    def show_car_type(cls):
        print ("这是%s" % cls.car_type)

Car.show_car_type() # 这是普通车

静态方法

静态方法不与对象或类绑定,使用@staticmethod装饰器进行定义。

class Car:
    car_type = '普通车'
    def __init__(self, color, speed):
        self.color = color
        self.speed = speed

    @staticmethod
    def show_car_info(color, speed):
        print ("这辆%s车速度为%d" % (color, speed))

Car.show_car_info('white',50) # 这辆white车速度为50

成员访问控制

私有成员

Python中没有绝对的“私有”,但是可以使用双下划线前缀进行指定为“私有成员”,可以强制不让从外部访问。

class Car:
    def __init__(self, color, speed):
        self.__color = color
        self.__speed = speed

    def show_info(self):
        print("这辆车是%s,速度为%d" % (self.__color, self.__speed))

    def set_color(self,color):
        self.__color = color

car1 = Car('white',50)
car1.show_info() # 这辆车是white,速度为50
car1.__color = 'black'
car1.show_info() # 这辆车是white,速度为50

保护成员

Python中的保护成员使用单下划线前缀,在声明时提醒使用者不要直接访问。但实际上可以从外部进行访问。

class Car:
    def __init__(self, color, speed):
        self._color = color
        self._speed = speed

    def show_info(self):
        print("这辆车是%s,速度为%d" % (self._color, self._speed))

car1 = Car('white',50)
car1._color = 'black'
car1.show_info() # 这辆车是black,速度为50

示例说明:

示例一:将汽车类的颜色改为红色

class Car:
    def __init__(self, color, speed):
        self.color = color
        self.speed = speed

    def show_info(self):
        print("这辆车是%s,速度为%d" % (self.color, self.speed))

car1 = Car('white',50)
car2 = Car('black',65)

car1.color = 'red'
car1.show_info() # 这辆车是red,速度为50

在实例属性中,color是绑定在对象上的实例属性,使用car1.color = 'red'即可改变颜色属性为红色。

示例二:静态方法打印汽车的全称

class Car:
    car_type = '普通车'
    def __init__(self, color, speed):
        self.color = color
        self.speed = speed

    @staticmethod
    def show_car_info(car_brand, color, speed):
        print ("这辆%s%s车速度为%d" % (car_brand, color, speed))

Car.show_car_info('卡车', '红色', 60)

静态方法不与对象或类绑定,只需要使用@staticmethod定义方法,并在方法内部进行操作即可。在这个示例里,加入了car_brand参数,输出的改为了汽车的全称。

本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:Python面向对象之成员相关知识总结 - Python技术站

(0)
上一篇 2023年6月3日
下一篇 2023年6月3日

相关文章

  • 详解Python 用抽象基类避免继承错误

    使用抽象基类(Abstract Base Class)是Python中避免继承错误的常用方法之一。抽象基类模块提供了一种强制性的接口规范,它可以确保子类实现了必须的方法。在Python中,抽象基类由abc模块提供。下面我们将详细讲解Python用抽象基类避免继承错误的技术原理和使用方法,包含以下几个方面: 什么是抽象基类? 如何定义抽象基类? 如何使用抽象基…

    python-answer 2023年3月25日
    00
  • 如何使用Python进行大数据处理?

    使用Python进行大数据处理通常需要使用一些专门的库和工具,比如pandas、numpy、dask、hadoop、spark等。下面是一个较为完整的攻略: 安装必要的库和工具 首先需要安装Python以及必要的库和工具。可以采用anaconda等集成Python及其常用库和工具的发行版,也可以手动安装Python并使用pip等包管理工具安装需要的库和工具。…

    python 2023年4月19日
    00
  • 详解Python中正则匹配TAB及空格的小技巧

    详解Python中正则匹配TAB及空格的小技巧 在Python中,正则表达式是一种强大的工具,可以用于匹配字符串中的各种模式。本攻略将详细解如何使用正则表达式匹配TAB及空的小技巧。 匹配空格 在正则表达式中,空格可以用\s表示。下面是一个例子,演示如何使用正则表达式匹配字符串中的空格: import re text = ‘Hello, world!’ pa…

    python 2023年5月14日
    00
  • 十个惊艳的Pythonic单行代码

    我来详细讲解一下“十个惊艳的Pythonic单行代码”的完整攻略。首先我会介绍Pythonic的概念,然后讲解为什么Python需要Pythonic的特性,接着讲解具体的十个Pythonic单行代码,并给出代码示例和解释。 Pythonic是什么? Pythonic是指遵循Python的简洁、优美、可读性强的代码风格。Pythonic的代码具有很高的可读性和…

    python 2023年5月14日
    00
  • Python批量解压&压缩文件夹的示例代码

    下面是“Python批量解压&压缩文件夹的示例代码”的完整攻略: 一、批量解压 1.1 解压单个文件 解压单个文件非常简单,我们可以使用Python内置的zipfile模块来完成。示例代码如下: import zipfile zip_file_path = ‘example.zip’ output_folder = ‘output’ with zip…

    python 2023年6月3日
    00
  • 这可能是最好玩的python GUI入门实例(推荐)

    下面是“这可能是最好玩的Python GUI入门实例(推荐)”的详细攻略。 简介 Python有许多GUI工具包可以使用,其中最常用的是Tkinter。本文将介绍一个有趣的Tkinter应用程序——“像素画板”,这是学习Python中GUI编程的绝佳入门示例。 准备 安装Tkinter:在Windows上,Tkinter通常是默认安装的。在Linux上,您需…

    python 2023年5月31日
    00
  • Python对字符串实现去重操作的方法示例

    下面是关于“Python对字符串实现去重操作的方法示例”的详细攻略。 1. 去重操作的目的和方法 去重操作的目的是为了消除字符串中的重复项,使字符串中的元素互不相同。Python提供了多种去重方法,这里介绍其中两种常用的方法。 1.1 使用set()函数进行去重 使用Python自带的set()函数可以很方便地对字符串进行去重操作。具体方法如下: str1 …

    python 2023年6月3日
    00
  • 150行Python代码实现带界面的数独游戏

    150行Python代码实现带界面的数独游戏 介绍 这是一个使用Python编写的数独游戏,具有可交互界面和提示功能。代码仅有150行,非常精简并易于理解。本攻略将详细讲解该游戏的实现过程和代码架构。 游戏实现过程 1.代码结构 该游戏主要由3个类组成: SudokuBoard:数独面板类,负责处理所有数独逻辑部分的功能,例如棋盘初始化、数字填充和检查答案。…

    python 2023年5月31日
    00
合作推广
合作推广
分享本页
返回顶部