美文网首页
Python 私有化 属性property

Python 私有化 属性property

作者: 浮华_e823 | 来源:发表于2018-08-19 20:30 被阅读0次

私有化
x: 公有变量
_x: 单前置下划线,私有化属性或方法,from somemodule import *禁止导入,类对象和子类可以访问
_xx:双前置下划线,避免与子类中的属性命名冲突,无法在外部直接访问(名字重整所以访问不到)
xx:双前后下划线,用户名字空间的魔法对象或属性。例如:init , __ 不要自己发明这样的名字
xx:单后置下划线,用于避免与Python关键词的冲突

父类中属性名为名字的,子类不继承,子类不能访问
如果在子类中向名字赋值,那么会在子类中定义的一个与父类相同名字的属性
_名的变量、函数、类在使用from xxx import *时都不会被导入

属性property.
1:私有属性添加getter和setter方法

class Money(object):
    def __init__(self):
        self.__money = 0

    def getMoney(self):
        return self.__money

    def setMoney(self, value):
        if isinstance(value, int):
            self.__money = value
        else:
            print("error:不是整型数字")

2:使用property升级getter和setter方法

class Money(object):
    def __init__(self):
        self.__money = 0

    def getMoney(self):
        return self.__money

    def setMoney(self, value):
        if isinstance(value, int):
            self.__money = value
        else:
            print("error:不是整型数字")
    money = property(getMoney, setMoney)

相关文章

  • Python 私有化 属性property

    私有化x: 公有变量_x: 单前置下划线,私有化属性或方法,from somemodule import *禁止导...

  • Python 私有化 属性property

    私有化 x: 公有变量_x: 单前置下划线,私有化属性或方法,from somemodule import *禁止...

  • day13面向对象(1)

    01-内置类属性 内置类属性:python中每个类都拥有内置的类属性 02私有化 python中,类和属性的私有化...

  • day014 笔记 08-01

    内置类的属性 python中每个类都拥有内置的类属性。 私有化 python中类中的属性和方法的私有化:直接在属性...

  • day15_python_类和对象

    属性的私有化 python中并没有真正的私有化!python 的类中默认的属性和方法都是公开的 1.私有化a.类中...

  • day-16类和对象

    私有化 python的私有化 python中在属性前面加两个下划线,就可以将属性或者方法私有化(只能两个下划线开头...

  • day16 面向对象

    01-recode 02-私有化 1.属性和方法的访问权限 2.python的私有化 3.python私有化的原理...

  • python @property

    参考 Python进阶之“属性(property)”详解 - Python - 伯乐在线

  • Python基础19-面向对象(属性限制-只读)

    1 通过属性私有化+只读属性实例方法 基本操作 优化(通过@property 装饰器)让实例可以通过 p1.age...

  • Python-day-13面向对象2

    一、内置类属性 二、私有化 python中类中的属性和方法的私有化:直接在属性名或者方法名前加' _ _ '(命名...

网友评论

      本文标题:Python 私有化 属性property

      本文链接:https://www.haomeiwen.com/subject/vzhhiftx.html