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

yizhihongxing

下面就是详细讲解“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控制Excel实现自动化办公

    下面是详细讲解如何用Python控制Excel实现自动化办公的完整实例教程。 一、准备工作 在执行示例代码之前,需要安装一些必要的第三方库,包括: pandas openpyxl 在安装完这两个库之后,就可以开始编写代码了。 二、读取Excel文件 通过Python库 openpyxl,我们可以轻松地读取Excel文件。下面是示例代码: import ope…

    python 2023年5月13日
    00
  • 用python实现一个简单的验证码

    下面是用Python实现一个简单验证码的完整攻略。 简单验证码的实现 需要用到的第三方库 Pillow (Python Imaging Library) 假设我们要生成一个 4 位数字的验证码。 下面是完整的示例代码: import random from io import BytesIO from PIL import Image, ImageDraw,…

    python 2023年5月19日
    00
  • python 爬虫网页登陆的简单实现

    下面是关于“python 爬虫网页登陆的简单实现”的完整攻略: 1. 背景介绍 爬虫一般需要模拟登陆才能爬取需要登录后才能获取的信息,例如淘宝、京东等电商类网站。Python作为一门较为流行的语言之一,它提供了许多优秀的库和模块用于爬虫操作,其中最为著名的是requests模块。本文将以requests模块为例,介绍如何利用Python实现网页登陆。 2. …

    python 2023年5月14日
    00
  • 详解在Python中使用Pillow将图像转换为JPG格式

    下面是在Python中使用Pillow将图像转换为JPG格式的完整攻略: 安装Pillow模块 在使用Pillow模块之前,需要先安装该模块。可以使用pip包管理工具在命令行中运行以下命令安装Pillow模块: pip install pillow 将图像转换为JPG格式 以下是将图像转换为JPG格式的示例代码: from PIL import Image …

    python-answer 2023年3月25日
    00
  • Win7 64位下python3.6.5安装配置图文教程

    以下是Win764位下Python3.6.5的安装配置图文教程: 1. 下载安装包 首先,你需要从官网下载Python3.6.5的安装包,链接如下: https://www.python.org/ftp/python/3.6.5/python-3.6.5-amd64.exe 下载完成后,双击安装包,选择“Add Python 3.6 to PATH”,然后一…

    python 2023年5月14日
    00
  • 加载 .pkl 文件后出现 Python 错误“ValueError:无法识别加载的数组布局”

    【问题标题】:Python error after loading .pkl file “ValueError: Did not recognise loaded array layout”加载 .pkl 文件后出现 Python 错误“ValueError:无法识别加载的数组布局” 【发布时间】:2023-04-05 01:09:01 【问题描述】: 以下…

    Python开发 2023年4月6日
    00
  • python属于解释语言吗

    是的,Python是解释语言。下面详细讲解一下什么是解释语言以及Python的解释器和解释语言的优缺点。 什么是解释语言? 解释语言是一种代码在运行之前不需要编译的编程语言。相反,解释程序直接将源代码输入解释器并逐行解释执行。解释程序可以将计算机语言翻译成更容易理解的人类语言,排除了领域特定的编译器所需的时间和资源消耗。 与编译语言不同,解释语言的代码编写并…

    python 2023年5月30日
    00
  • 如何使用Python脚本实现文件拷贝

    让我来详细讲解如何使用Python脚本实现文件拷贝的完整攻略。 1. 使用shutil模块进行文件复制 在Python中,可以使用shutil模块中的copy方法来复制文件。下面是一个示例代码,演示如何将文件A复制到文件B: import shutil shutil.copy(‘A’, ‘B’) 其中,shutil.copy接收两个参数,第一个参数是源文件的…

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