美文网首页程序员python 高级码农成才之路
* 禁白嫖 *python ----私有属性 *** 删除属性

* 禁白嫖 *python ----私有属性 *** 删除属性

作者: 幼姿沫 | 来源:发表于2021-02-02 14:35 被阅读0次

    禁白嫖的含义就是

     尊重我的劳动成果  点赞 打赏 转发 谢谢您各位捧场

    '''

    更好的保护对象属性安全就是不可随意更改

    所以添加了私有类 添加可调用的方法 供调用

    对自己独有的属性进行修改必须进行调用独特的方法

    在属性名之前添加两个下划线则表示私有化了不会进行随意更改

    方法名之前添加两个下划线也表示是 私有方法

    '''

    class Person:

        def __init__(self,gender):

            self.__gender=gender

        def setGender(self,newGender):

            if self.__gender=='male':

                self.__gender=newGender

            else:

                print('他的性别不是male')

        def getGender(self):

            return self.__gender

    p=Person('male')

    print(p.getGender())

    p.setGender('female')

    print(p.getGender())

    p.setGender('no female or male')

    print(p.getGender())

    控制台输出结果

    male

    female

    他的性别不是male

    female

    #私有属性 private私有属性 / public共有属性

    # python中定义私有属性用__name  添加可以调用的方法进行调用

    class People:

         def __init__(self,name):

            self.__name=name

        def getName(self):

            return self.__name

        def setName(self,newName):

            if len(self.__name) >=5:

                self.__name=newName

                 return self.getName()

           else:

                    print('error:名字长度必须大于5')

    xm=People('huahua')

    xm.setName('lisi')

    print(xm.getName())

    xm.setName('huangyongxin')

    print(xm.getName())

    控制台输出结果

    lisi

    error:名字长度必须大于5

    lisi

    #创建对象的时候 默认调用 init方法 创建类属性

    #删除对象的时候会自动调用del方法  删除类属性

    class Animal:

        def __init__(self,name):

            print('*****__init__方法会被进行调用*****')

            self.__name=name

        def __del__(self):

            print('****调用了__del__方法 删除类对象*****')

            print('%s 会被__del__干掉'%self.__name)

    dog=Animal('haba')

    dog.__del__()

    del dog

    cat=Animal('bosi')

    cat2=cat

    cat3=Animal('heiwei')

    cat4=cat3

    cat5=cat

    print('cat 正在被干掉 或者删除菜单 ')

    del cat

    print('cat3正在被干掉 或者删除菜单')

    del cat3


    控制台输出:

    *****__init__方法会被进行调用*****

    ****调用了__del__方法 删除类对象*****

    haba 会被__del__干掉

    ****调用了__del__方法 删除类对象*****

    haba 会被__del__干掉

    *****__init__方法会被进行调用*****

    *****__init__方法会被进行调用*****

    cat 正在被干掉 或者删除菜单

    cat3正在被干掉 或者删除菜单

    ****调用了__del__方法 删除类对象*****

    bosi 会被__del__干掉

    ****调用了__del__方法 删除类对象*****

    heiwei 会被__del__干掉

    相关文章

      网友评论

        本文标题:* 禁白嫖 *python ----私有属性 *** 删除属性

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