类的组成

"""
类的组成:
    属性:
        类属性/类变量
        对象属性/成员属性/成员变量
    行为:
        对象方法/成员方法
        类方法
        静态方法

类属于与成员属性:
    1.定义位置不同:
        类属性定义在类内,方法外
        对象属性定义在__init__方法内

    2.内存中存储的份数不同
        类属性:唯一一份
        对象属性:每个对象都有属于自己的一份

    3.所有者不同:
        类属性:
            属于类
        对象属性:
            属于对象
    4.访问方式不同:
        类属性:
            获取值:
                类名.类属性
                对象名.类属性
            设置值:
                类名.类属性
        对象属性:
            读写:
                对象名.属性名
    5.生命周期不同
        类属性:
            程序周期
        对象属性:
            对象创建时,出生,对象被系统回收时,结束

类方法:
    定义:
        需要使用@classmethod修饰
        有一个必需参数cls
    调用:
        类名.类方法()
        也可以使用对象调
        对象.类方法()

静态方法
    定义在类内的一个函数
    @staticmethod
    可以不用有任何参数
    调用:
        类名.静态方法()
        对象.静态方法()

"""
class Student(object):
    # 类属性
    cls_id = 102
    country = 'China'
    def __init__(self,name,age):
        self.name = name
        self.age = age

    @classmethod
    def cls_method(cls):
        print('我是类方法')
        print(cls)
        print(cls.cls_id)
    @staticmethod
    def static_method():
        print('我是静态方法')

stu1 = Student('峰哥',40)# Student.__new__().__init__()
#类属性的访问 读
print(Student.cls_id)
print(stu1.cls_id)

# 类属性的访问  写
Student.cls_id = 101
# 为对象动态添加属性
stu1.cls_id = 105

# del stu1

print(Student.cls_id)

# 调用类方法
Student.cls_method()
# 使用对象调用类方法
stu1.cls_method() # stu1.__class__.cls_method()

#调用静态方法
Student.static_method()
stu1.static_method()

 

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值