Python 核心知识点分析之“类与对象”

# 对象方法(实例方法)、类方法、静态方法总结



# 1.对象方法(实例方法)    ===========================================
class Init1:
    __a = 2                 # 私有属性
    b = 44                  # 公有属性

    def show(self):         # 公有方法
        self.__a = 3        # 新定义一个私有属性a,并赋值
        print(self.__a)     # 打印新定义的私有属性
        Init1.__a = 5       # 给私有属性赋值
        print(Init1.__a)    # 打印私有属性


# 打印属性a
print(Init1.b)          # 类直接访问公有属性

my_init = Init1()       # 创建类的对象

my_init.show()          # 类的对象访问方法

Init1.b += 1            # 公有属性运算
my_init.b += 1          # 公有属性运算
print(my_init.b)        # 类的对象访问公有属性



# 2.类方法    =========================================================
class Init2(object):        # Init2(object): 等价于 Init2:
    a = 11                  # 定义公有属性
    __b = 22                # 定义私有属性

    @classmethod            # 类方法修饰
    def show(cls):          # 封装类方法
        cls.__b += 1        # 对私有属性赋值(属性要提前定义)
        print(cls.__b)      # 打印私有属性
        Init2.__b += 1      # 私有属性运算
        print(Init2.__b)    # 打印私有属性


print(Init2.a)      # 打印类访问的公有属性

Init2.show()        # 直接类访问方法

Init2.a += 10       # 类访问公有属性运算
print(Init2.a)      # 打印类访问的公有属性



# 3.静态方法    ========================================================
class Init3:
    name = ''                           # 定义公有属性
    __age = 0                           # 定义私有属性

    @staticmethod                       # 静态方法修饰
    def show(age):                      # 封装静态方法
        Init3.__age = age               # 对私有属性赋值
        print(Init3.__age, end=' ')     # 打印私有属性

        Init3.sex = '男'                # 对私有属性赋值
        print(Init3.sex)                # 打印私有属性


Init3.name = '周华'               # 对私有属性赋值
print(Init3.name, end=' ')       # 打印私有属性

Init3.show(23)                   # 类访问静态方法



# 3.1.静态方法    =======================================================
class Init4:
    __sex = 0       # 定义一个私有属性

    def __init__(self, name, sex=18):      # 构造方法
        self.name = name                   # 定义一个公有属性,并赋值(只能作用在此方法内)
        # Init4.name = name                # 都是作用在此方法内
        Init4.__sex = sex                  # 给私有属性赋值
        print(self.name, end='\t')         # 打印

    @staticmethod               # 静态方法修饰
    def show(age):              # 封装静态方法
        Init4.__age = age       # 对私有属性赋值

        print(f'{Init4.__sex}\t{Init4.__age}')  # 打印

    def __del__(cls):       # 默认系统会自动调用析构方法(参数通常是self)
        print('结束')        # 有个知识点很重要:析构方法是对象引用为0时,才会调用


my_info = Init4(name='周华', sex=23)      # 创建类的对象

Init4.show('男')                          # 访问静态方法

print(666)       # 思考:请问'666'在最后一样打印吗?


作者:周华

创作日期:2022/5/28

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值