Python入门--面向对象的特征-->封装

#面向对象的三大特征
#1.封装: 提高数据安全性
#将数据(属性)和行为(方法)包装到类对象中。在方法内部对属性进行操作,在类对象的外部调用方法。
#这样,无需关心方法内部的具体实现细节,从而隔离了复杂度
#在Python中没有专门的修饰符用于属性的私有,如果该属性不希望在类外部被访问,前边使用两个'_'
#2.继承
#提高代码的复用性
#3.多态
#提高程序的可扩展性和可重复性
'''
类是对属性和方法的包装
'''
class Car:
    def __init__(self,brand):
        self.br=brand
    def start(self):
        print('汽车已启动')
    @staticmethod
    def me():  # 静态方法什么都不写
        print('我使用了staticmethod进行修饰,所以我是静态方法')
    @classmethod
    def cm(cls):  # 类方法cls
        print('我是类方法,因为我使用了classmethod进行修饰')
car=Car('宝马X5')
print(car.br)
print(Car.start(car))
'''
在Python中没有专门的修饰符用于属性的私有,如果该属性不希望在类外部被访问,前边使用两个'_'
'''
class Student:
    def __init__(self,name,age):
        self.name=name
        self.__age=age#__表明不可在类的外部使用
    def show(self):
        print(self.name,self.__age)
stu=Student('张三',20)
stu.show()
Student.show(stu)
#在类的外部使用name与age
print(stu.name)
'''
以下语句会报错
print(stu.__age)#'Student' object has no attribute '__age'
'''
print(stu._Student__age)#在类的外部可通过_类名__进行访问

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
封装面向对象编程中的一个重要概念,它主要是指将数据和行为封装在一起,形成一个类,并对外提供接口,隐藏实现细节,保证数据安全性和代码可维护性。 Python中的封装主要通过访问权限控制实现。在Python中,属性和方法都有其对应的访问权限,主要有公有、私有和受保护三种。 公有属性和方法可以被类内部和外部访问,私有属性和方法只能在类内部访问,受保护属性和方法也只能在类内部和子类中访问。 下面通过一个例子来说明Python中如何进行封装。 ```python class Person: def __init__(self, name, age): self.__name = name # 私有属性 self.__age = age # 私有属性 def say_hello(self): print("Hello, my name is %s, and I'm %d years old." % (self.__name, self.__age)) def set_age(self, age): if age < 0 or age > 150: print("Invalid age!") else: self.__age = age # 修改私有属性 p = Person("Tom", 20) p.say_hello() # 输出:Hello, my name is Tom, and I'm 20 years old. p.__name # 报错:AttributeError: 'Person' object has no attribute '__name' p.set_age(200) # 输出:Invalid age! ``` 在上面的例子中,我们定义了一个Person类,其中包含了两个私有属性__name和__age,以及一个公有方法say_hello和一个受保护方法set_age。这样,外部就无法直接访问__name和__age属性,只能通过调用say_hello方法来输出实例的信息。同时,set_age方法可以修改私有属性__age,但是它会对输入的年龄进行检查,保证数据的合法性。 可以看出,Python中的封装通过访问权限控制实现,可以保证数据的安全性和代码的可维护性。在实际开发中,我们应该尽量使用封装来保护数据,防止出现意外错误。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值