Python(私有化属性、单例模式、异常处理)

本文介绍了Python中的私有化属性和方法,包括它们的使用场景和作用。详细讲解了Property属性,强调了__new__方法在对象实例化过程中的重要角色。接着探讨了单例模式的实现,以及在何时何地应用单例。最后,文章讨论了异常处理,如何捕获和处理异常,以及自定义异常的方法。
摘要由CSDN通过智能技术生成

私有化属性

为了更好的 保存属性安全,即不能随意更改,将属性定义为私有属性,添加一个可调用的方法去访问。

语法:两个下划线开头,不能在类的外部被使用或直接修改。

#使用私有属性的场景
#1、把特定的一个属性隐藏起来,不想让类的外部进行直接使用。
#2、保护这个属性,不想让属性的值随意改变。
#3、保护这个属性,不想让派生类(子类)去继承

class Person:
    __hobby='唱歌'
    
    def __init__(self):
        self.__name='李四' #加两个下划线,将它私有化,就不能在外部直接访问了。
        self.age=13
        pass
    def __str__(self):
        return'{}的年龄是{}'.format(self.__name, self.age)
        

class Student(Person):
    pass

stu=Student()
print(stu.age)
#私有化属性也不能被继承使用
    
xiaoli=Person()
#print(xiaoli.name)
#在类的外部访问是错误的,不能进行访问。
print(xiaoli)

#1、私有化的【实例】属性不能在外部直接访问,可以在类的内部随意使用。
#2、子类不能继承父类的私有化属性。【只能继承公共的属性和行为】
#3、直接在属性前面加两个下划线,就可以变成私有化了。

私有化方法

私有化方法跟私有化属性概念一样,有些重要的方法,不允许外部调用,防止子类意外重写,把普通的方法设置成私有方法。
私有化方法,即在方法名前面加两个下划线。
私有化方法一般是内部调用,不能继承使用。

Property属性

class Person(object):
    
   
    def __init__(self):
        self.__age=18
        pass
    def get_age(self):
        return self.age
    def set_age(self,age):
        if age<
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值