Study notes (11): 21 days the Python clearance (Only Video Class) - Hide package

Learning immediately: https://edu.csdn.net/course/play/24797/282191?utm_source=blogtoedu

python does not provide a true hidden mechanism, python class all the members are public by default.

 

If you need to hide some members, named them to begin with a double underscore. In fact, still be called hidden by adding members "underlined the class name plus" prefix Lai

 

class Test:
    def __init__(self, name='admin', passwd='password'):
        if Test.checkPw(self, passwd) and Test.checkNm(self, name):
            self.__name = name
            self.__passwd = passwd
        else:
            print('输入无效')
            exit()

    def getPw(self):
        return self.__passwd

    @property
    def name(self):
        return self.__name

    def setPw(self, passwd):
        if Test.checkPw(self, passwd):
            self.__passwd = passwd
        else:
            print('password格式不对')
            exit()

    @name.setter
    def name(self, name):
        if Test.checkNm(self, name):
            self.__name = name
        else:
            print('name格式不对')
            exit()

    def checkNm(self, name):
        if isinstance(name, str) and 4 <= name.__len__() <= 8:
            return True
        else:
            return False

    def checkPw(self, passwd):
        if isinstance(passwd, str) and 6 <= passwd.__len__() <= 10:
            return True
        else:
            return False

        # name = property(fget=getNm, fset=setNm)

    passwd = property(fget=getPw, fset=setPw)

t = Test()
inm = input("请输入用户名_____")
T.name = # 'Hello'
# t.passwd = 'word'
= INM t.name 
IPW = INPUT ( 'Please enter the password _______') 
t.passwd IPW = 
Print (t._Test__name, t._Test__passwd) 
Print (t.name, t.passwd)
Published 25 original articles · won praise 4 · Views 605

Guess you like

Origin blog.csdn.net/happyk213/article/details/105186248