python基础知识之私有属性和私有方法

 更新时间:2021年03月25日 09:35:29   作者:愚公搬代码  
这篇文章主要介绍了python基础知识之私有属性和私有方法,本文通过实例代码给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友可以参考下

私有权限

面向对象三大特性:封装、继承、多态
封装的意义:

  1. 将属性和方法放到一起做为一个整体,然后通过实例化对象来处理;
  2. 隐藏内部实现细节,只需要和对象及其属性和方法交互就可以了;
  3. 对类的属性和方法增加 访问权限控制。

私有权限:在属性名和方法名 前面 加上两个下划线 __

  1. 类的私有属性 和 私有方法,都不能通过对象直接访问,但是可以在本类内部访问;
  2. 类的私有属性 和 私有方法,都不会被子类继承,子类也无法访问;
  3. 私有属性 和 私有方法 往往用来处理类的内部事情,不通过对象处理,起到安全作用。

私有属性

"""
私有属性,只需要在原属性名前加上两个下划线,即可
目的: 保证数据的相对安全,
想要访问和使用私有属性: 定义一个公有的方法,通过这个方法使用
"""


# 案例需求: 定义People 类, 定义属性 ICBC_money , 钱不能随便被修改,必须是合法的终端才可以操作
class People(object):
  def __init__(self):
    # python中的私有本质是 修改属性的名字, 在创建对象的时候,会自动的修改属性名
    # 在属性名的前边加上 _类名前缀
    self.__ICBC_money = 0 # 定义私有属性

  # 定义公有的方法,提供接口,修改余额
  def get_money(self):
    return self.__ICBC_money

  def set_money(self, money):
    num = input('输入金额:')
    self.__ICBC_money += int(num)
    # self.__ICBC_money += money

# 创建People类对象
xw = People()
# 实例对象.__dict__ 可以查看对象具有的属性信息,类型是字典,字典的key是属性名, 字典的value是属性值
print('赋值之前:', xw.__dict__)
# print(xw.__ICBC_money)
xw.__ICBC_money = 1000 # 不是修改私有属性,是重新添加一个公有属性
print('赋值之后:', xw.__dict__)
print(xw.__ICBC_money)
print('=' * 20)
print(xw.get_money()) # 0
xw.set_money(1000)
print(xw.get_money()) # 1000
xw.set_money(-500)
print(xw.get_money()) # 500

私有方法

"""
私有方法: 在方法的前边加上两个__ ,就为私有方法
私有方法,不能在类外部访问
作用: 一般作为类内部的方法使用,不让在外部直接调用, 保证业务逻辑不被破坏
"""


class Dog(object):
  def born(self):
    """生小狗的方法, 生一个小狗,休息30天"""
    print('生了一只小狗...')
    self.__sleep()

  def __sleep(self):
    print('休息30天')


dog = Dog()
# dog.__sleep()
dog.born()

到此这篇关于python基础知识之私有属性和私有方法的文章就介绍到这了,更多相关python私有属性和私有方法内容请搜索脚本之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持脚本之家!

相关文章

  • 详解pyppeteer(python版puppeteer)基本使用

    详解pyppeteer(python版puppeteer)基本使用

    这篇文章主要介绍了详解pyppeteer(python版puppeteer)基本使用 ,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2019-06-06
  • PyQt5实现进度条与定时器及子线程同步关联

    PyQt5实现进度条与定时器及子线程同步关联

    这篇文章主要为大家详细介绍了PyQt5如何实现进度条与定时器及子线程的同步关联,文中的示例代码讲解详细,感兴趣的小伙伴可以跟随小编一起学习一下
    2023-01-01
  • Python Numpy实现计算矩阵的均值和标准差详解

    Python Numpy实现计算矩阵的均值和标准差详解

    NumPy(Numerical Python)是Python的一种开源的数值计算扩展。这种工具可用来存储和处理大型矩阵,比Python自身的嵌套列表结构要高效的多。本文主要介绍用NumPy实现计算矩阵的均值和标准差,感兴趣的小伙伴可以了解一下
    2021-11-11
  • 解决python spyder 突然打不开的问题

    解决python spyder 突然打不开的问题

    这篇文章主要介绍了解决python spyder 突然打不开的问题,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧
    2021-05-05
  • 对Python中type打开文件的方式介绍

    对Python中type打开文件的方式介绍

    下面小编就为大家介绍一下对Python中type打开文件的方式。具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧
    2018-04-04
  • 你可能不知道的Python 技巧小结

    你可能不知道的Python 技巧小结

    有许许多多文章写了 Python 中的许多很酷的特性,例如变量解包、偏函数、枚举可迭代对象,但是关于 Python 还有很多要讨论的话题,因此在本文中,我将尝试展示一些我知道的和在使用的,但很少在其它文章提到过的特性。那就开始吧
    2020-01-01
  • python库sklearn常用操作

    python库sklearn常用操作

    sklearn是一个无论对于机器学习还是深度学习都必不可少的重要的库,里面包含了关于机器学习的几乎所有需要的功能,本文不会先整体介绍sklearn库,而是先从sklearn库中的一些具体实例入手,感兴趣的朋友一起看看吧
    2021-08-08
  • python代码中的缩进规则详细解释(史上最全)

    python代码中的缩进规则详细解释(史上最全)

    这篇文章主要介绍了代码缩进的重要性以及在Python语言中的具体规则,代码缩进有助于提高代码的可读性和整洁性,并且是Python语言中一个强制性的语法要求,文中通过代码介绍的非常详细,需要的朋友可以参考下
    2025-01-01
  • Python+Pygame实战之吃豆豆游戏的实现

    Python+Pygame实战之吃豆豆游戏的实现

    这篇文章主要为大家介绍了如何利用Python中的Pygame模块实现仿吃豆豆游戏,文中的示例代码讲解详细,对我们学习Python游戏开发有一定帮助,需要的可以参考一下
    2022-06-06
  • 详解Python脚本如何消费多个Kafka topic

    详解Python脚本如何消费多个Kafka topic

    kafka-python库是一个流行的Kafka客户端库,本文主要为大家详细介绍了如何通过这个库创建一个Kafka消费者,并同时消费多个Kafka topic,需要的可以了解下
    2024-11-11

最新评论