程序员python 高级码农成才之路

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

2021-02-02  本文已影响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__干掉

上一篇 下一篇

猜你喜欢

热点阅读