定义类方法和静态方法

# (7)综合训练:
# 定义一个`Person` 类,包含初始化 init 方法:
# 实例属性:      名字, name
#            年龄, age
# 1. 记录由该类创建的对象的个数,创建一个对象,计数+1,删除一个对象,计数-1;
# 2. 定义一个方法,可以打印当前对象的个数;
# 3. 定义一个方法`show_info`, 输出以下信息
#    这是一个 Person 类,谢谢查看!
# 4. 打印对象的时候,可以输出打印自己的名字和年龄
#    我的名字是 xxx, 年龄是 xxx
# 5. 定义一个方法 `study`, 输出以下信息
#    我叫 xxx, 我要好好学习
# 6. 操作步骤
#    1. 调用`show_info `方法;
#    2. 创建两个对象, 打印当前对象,并打印当前的对象个数;
#    3. 分别使用两个对象调用`study`方法;
#    4. 删除一个对象,打印输
class Person(object):

    #定义类属性count,统计该类创建的对象个数
    __count=0

    #创建init方法,创建实例属性
    def __init__(self,name,age):
        self.name=name
        self.age=age

        #记录由Person类创建对象的个数,创建+1,删除-1
        Person.__count+=1

    #定义类方法,参数必须是类对象,打印当前对象的个数
    @classmethod
    def get_count(cls):
        return  cls.__count

    #没规定的时候一般定义静态方法
    @staticmethod
    def show_info():
        print('这是一个 Person 类,谢谢查看!')

    #定义str方法
    def __str__(self):
        print(f'我的名字是{self.name},年龄是{self.age}')

    #定义study方法
    def study(self):
        print(f'我叫{self.name},我要好好学习')

    #定义del方法
    def __del__(self):
        Person.__count-=1

if __name__ == '__main__':

    #调用show_info方法
    Person.show_info()
    print(Person.get_count())

    #创建两个对象
    p1=Person('小猪',18)
    p2=Person('小猫',23)

    #打印当前对象,并打印当前的对象个数
    print(p1,p1.get_count())
    print(p2,p2.get_count())

    #分别使用两个对象调用study方法
    p1.study()
    p2.study()

    #删除一个对象
    del p1

    #打印输出当前的对象个数
    print(Person.get_count())
出当前的对象个数。
  • 4
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值