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()  # 正确

猜你喜欢

转载自blog.csdn.net/qq_25948717/article/details/81705560
今日推荐