python面向对象三大特征之---封装,私有属性和私有方法,property功能; 继承,重写,object类;多态;类的深拷贝和浅拷贝

1.面向对象三大特征

在这里插入图片描述

封装

在这里插入图片描述
1.类属性的创建:
在这里插入图片描述
2.属性的访问:
在这里插入图片描述
私有属性和方法在类外访问的方法也有:不推荐

对象名._类名__私有方法()
对象名._类名__私有属性

3.property功能

在Python中,property 是一个内置的功能,它允许类的方法被当作属性来访问。这意着,你可以像访问数据属性一样访问这些方法的返回值,同时还可以在访问时执行一些逻辑(比如计算值、验证输入等),而不需要显式地调用方法。
@property下的函数调用只能访问属性,不可以更改值,.setter更改属性,注意.前边的是property函数名

property 装饰器或函数可以用来创建这样的属性。它接受一到四个参数:fget(获取值的函数)、fset(设置值的函数)、fdel(删除值的函数)和doc(文档字符串)。通常,至少需要 fget 参数。

class Circle:  
    def __init__(self, radius):  
        self._radius = radius  
  
    @property  
    def radius(self):  
        """获取圆的半径"""  
        return self._radius
       #用setter来更改属性的值
    
    @radius.setter  
    def radius(self, value):  
        """设置圆的半径,确保值为正数"""  
        if value < 0:  
            raise ValueError("半径不能为负数")  
        self._radius = value  
# 使用  
c = Circle(5)  
print(c.radius) 
c.radius = 10    # 赋值,调用setter 

继承

python’中一个子类可以有多个父类
在这里插入图片描述
1.初始化变量

  • 对于只有一个父类的子类,通过super(). __ init__()调用已经被父类初始化的变量
    def __init__(self,name,age,stuno):
        super().__init__(name,age)
        self.stuno=stuno
  • 对于有几个父类的子类,通过 父类名字(). __ init__(self,)调用已经被父类初始化的变量
    def __init__(self,name,age,stuno,st):
        Father1().__init__(self,name,age)
        Father2().__init__(self,stuno)
        self.st=st

2.重写
若想在自己的方法中调用父类方法:super().父类方法()在重写方法时调用父类的方法

在这里插入图片描述

3.object类

在这里插入图片描述

多态

实现程序的可扩展性,方便遇到同名方法时候找到对应的类的方法
在这里插入图片描述

类的深拷贝和浅拷贝

在这里插入图片描述
在这里插入图片描述

①变量的赋值:
对象 com1=com这样

②浅拷贝和深拷贝
A shallow copy constructs a new compound object and then (to the extent possible) inserts the same objects into it that the original contains.
A deep copy constructs a new compound object and then, recursively, inserts copies into it of the objects found in the original

import copy
com1=copy.copy(com)
import copy
x = copy. copy(y) # make a shallow copy of y 
x = copy. deepcopy(y) # make a deep copy of y
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值