python高级特性之私有属性及私有方法

如果有一个对象,当需要对其进行修改属性时,有2种方法:

(1)对象名.属性名=数据---->直接修改

(2)对象名.方法名()----->间接修改

为了更好的保障属性安全,不能随意修改,一般处理方式为:

(1)将属性定义为私有属性

(2)添加一个可以调用的方法,供调用,也就是间接调用属性

class People(object):

    def __init__(self, name):
        self.__name = name

    def getName(self):
        return self.__name

    def setName(self, newName):
        if len(newName) >= 5:
            self.__name = newName

        else:
            print("error:名字长度需要大于或者等于5")


xiaoming = People("monkey")
print(xiaoming.__name)#####这是错误的,因为直接输出了私有的属性,是不可以的
class People(object):

    def __init__(self, name):
        self.__name = name

    def getName(self):
        return self.__name

    def setName(self, newName):
        if len(newName) >= 5:
            self.__name = newName

        else:
            print("error:名字长度需要大于或者等于5")


xiaoming = People("monkey")
print(xiaoming.getName())  # 这样就是通过调用方法来间接调用属性

 

class Dog:


# 私有方法,在方法名前面加上两个下划线
def __test1(self):
    print(“1”)

    def test2(self):
        print(“2”)

        dog = Dog()
        dog.__test1()  # 报错
        dog.test2()  # 正确

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值