Python底层封装实现方法详解

 更新时间:2020年01月22日 08:43:11   投稿:yaominghui  
这篇文章主要介绍了Python底层封装实现方法详解,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下

这篇文章主要介绍了Python底层封装实现方法详解,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下

事实上,python封装特性的实现纯属“投机取巧”,之所以类对象无法直接调用私有方法和属性,是因为底层实现时,python偷偷改变了它们的名称。

python在底层实现时,将它们的名称都偷偷改成了"_类名__属性(方法)名"的格式

class Person:
  def setname(self, name):
    if len(name) < 3:
      raise ValueError('名称长度必须大于3!')
    self.__name = name
    
  def getname(self):
    return self.__name
  
  #为name配置setter和getter方法
  name = property(getname, setname)
  
  def setage(self, age):
    if age < 100:
      self.__age = age
    else:
      raise ValueError('年龄必须小于100!')
  
  def getage(self):
    return self.__age
  
  #为age配置getter和setter方法
  age = property(getage, setage)
  
  #定义私有方法
  def __display(self):
    print(self.__name, "今年", self.__age, "岁。")
    
xiaobai = Person()
xiaobai.name = "xiaobai"
xiaobai.age = 20
#直接调用隐藏的display()方法
xiaobai._Person__display()

xiaobai 今年 20 岁。

总结:python类中所有的属性和方法,都是公有的,如果希望python底层修改类属性或者类方法的名称,以此将它们隐藏起来,只需将它们的名称前添加双下划线("__")即可。

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持脚本之家。

相关文章

  • 利用Python展示文件下载进度条

    利用Python展示文件下载进度条

    这篇文章主要介绍了Python展示文件下载进度条,requests库相信大家都用过,做接口测试少不了它。其实我们平时下载文件,也可以用requests做到的,通过一些地址,下面我们就来看看具体是什么样的地址及详细内容,需要的朋友可以参考一下
    2021-11-11
  • Python中创建包和增添包的路径(sys.path.append())

    Python中创建包和增添包的路径(sys.path.append())

    本文主要介绍了Python中创建包和增添包的路径(sys.path.append()),文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2025-01-01
  • 在django中自定义字段Field详解

    在django中自定义字段Field详解

    今天小编就为大家分享一篇在django中自定义字段Field详解,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧
    2019-12-12
  • python3调用ansible api使用实例例说明

    python3调用ansible api使用实例例说明

    这篇文章主要为大家介绍了python3 调用ansible api使用说明,有需要的朋友可以借鉴参考下,希望能够有所帮助,祝大家多多进步,早日升职加薪
    2023-07-07
  • keras 自定义loss层+接受输入实例

    keras 自定义loss层+接受输入实例

    这篇文章主要介绍了keras 自定义loss层+接受输入实例,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧
    2020-06-06
  • 一文带你搞懂Python中的数据容器

    一文带你搞懂Python中的数据容器

    这篇文章主要为大家详细介绍了Python中数据容器的相关资料,文中的示例代码讲解详细,对我们学习Python有一定的帮助,感兴趣的可以了解一下
    2022-11-11
  • python调用百度地图WEB服务API获取地点对应坐标值

    python调用百度地图WEB服务API获取地点对应坐标值

    这篇文章主要为大家详细介绍了python调用百度地图WEB服务API获取地点对应坐标值,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2019-01-01
  • 基于asyncio 异步协程框架实现收集B站直播弹幕

    基于asyncio 异步协程框架实现收集B站直播弹幕

    本文给大家分享的是基于asyncio 异步协程框架实现收集B站直播弹幕收集系统的简单设计,并附上源码,有需要的小伙伴可以参考下
    2016-09-09
  • 关于python的xlwings与VBA间的互相调用

    关于python的xlwings与VBA间的互相调用

    这篇文章主要介绍了关于python的xlwings与VBA间的互相调用,VBA是一种通用应用软件脚本语言,Excel包含和许多功能强大的数据分析对象,例如工作表、图表、数据透视表以及大量的数学、财务、工程和通用业务函数,配合VBA可以运用这些对象开发出自动程序
    2023-07-07
  • 详解python中的IO操作方法

    详解python中的IO操作方法

    这篇文章主要介绍了Python实现IO操作的示例,是python入门必会得知识点,将帮助大家更好的理解和使用python,感兴趣的朋友可以了解下
    2022-01-01

最新评论