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命令行定时任务自动化工作流程

    下面我给您详细讲解一下“Python命令行定时任务自动化工作流程”的完整攻略: 1. 背景介绍 在实际工作中,我们经常需要定时执行某些任务,如每天对数据进行备份、定时发送邮件等。使用Python可以很方便地实现这些定时任务的自动化执行,从而减少工作量,提高效率。 2. 工作流程 Python命令行定时任务自动化工作流程一般包括以下步骤: 安装依赖包:需要安装…

    python 2023年5月19日
    00
  • python multiprocessing多进程变量共享与加锁的实现

    下面我来详细讲解一下“python multiprocessing多进程变量共享与加锁的实现”的完整攻略。 简介 Python 的 multiprocessing 模块提供了一种使用多进程并行处理数据的方法,可以显著提高数据处理的速度。不过在多进程编程中,每个进程独立运行,各自维护着自己的内存空间,因此共享变量需要特别处理,否则容易出现多个进程并发修改同一个…

    python 2023年6月6日
    00
  • Django中的“惰性翻译”方法的相关使用

    在Django中,“惰性翻译”指的是将翻译的处理直到需要使用它。这种方法的主要目的是提高性能并减少内存占用。在这个攻略中,我将介绍使用“惰性翻译”的相关知识和示例。 什么是惰性翻译? 惰性翻译是指在需要进行翻译的时候才去实际进行翻译处理。在Django中,我们可以通过使用 ugettext_lazy 或 gettext_lazy 方法来实现惰性翻译。这种方法…

    python 2023年6月5日
    00
  • python3读取csv和xlsx文件的实例

    当然,我很乐意为您提供“Python3读取CSV和XLSX文件的实例”的完整教程和两个示例说明。让我们开始吧! Python3读取CSV和XLSX文件的实例 在Python中读取CSV和XLSX文件是一项广泛使用的任务,因为CSV和XLSX文件广泛用于存储数据,包括数据的输出和输入。Python标准库中的csv和openpyxl模块为读取这些文件提供了内置功…

    python 2023年5月13日
    00
  • Python3.5内置模块之os模块、sys模块、shutil模块用法实例分析

    下面我将详细讲解一下“Python3.5内置模块之os模块、sys模块、shutil模块用法实例分析”的完整攻略。 1. os模块 1.1 os模块简介 os模块是Python的内置模块之一,主要用于与操作系统进行交互,并提供了许多处理文件和目录的方法。在大多数操作系统中,os模块提供了与操作系统底层交互的接口。 1.2 os模块常用方法介绍 1.2.1 获…

    python 2023年5月30日
    00
  • 教你用Python实现自动提取并收集信息的功能

    下面我将详细讲解“教你用Python实现自动提取并收集信息的功能”的完整攻略。 1. 准备工作 在使用Python来实现自动提取并收集信息的功能之前,需要准备一些必要的工具和环境。其中,最关键的是以下几点: 安装Python环境 安装相关的Python包,比如requests、beautifulsoup4、pandas等 学习基本的Python语法和知识 2…

    python 2023年5月19日
    00
  • 如何在Python中进行安全测试?

    在进行Python的安全测试之前,需要了解一些基本的概念和工具,如渗透测试、漏洞扫描、Web应用程序测试、密码破解等。以下是实施Python安全测试的一般步骤和工具: 1. 渗透测试 渗透测试是一种黑盒测试,目的是发现和利用网络、Web应用、无线网络和社交工程学方面的漏洞。我们可以使用Python实现著名的Metasploit框架,其主要有两个Python接…

    python 2023年4月19日
    00
  • python 集合set中 add与update区别介绍

    Python集合Set中add与update区别介绍 在Python中,集合(Set)是一个无序、不重复元素的集合。Set中的元素必须是可哈希的,以下将详细介绍Set中的add()和update()两个方法的区别。 add()方法 set.add()方法用于向集合中添加单个元素。 语法 set.add(element) 其中,element表示要添加的元素。…

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