Python学习笔记--基础语法6.5--类方法和静态方法

类方法是针对类定义的方法,再类方法中可以直接访问类属性,也可以调用其他类方法。

# -*- coding: utf-8 -*-
class Tool(object):
    #创建类属性,用来记录创建对象的次数
    count=0
    @classmethod
    def a(cls):
        #对类属性做一个加1 的操作
        Tool.count+=1
        pass
    
    def __init__(self,name):
        self.name=name      

Tool.a()
print(Tool.count)

结果:

1

静态方法
静态方法不需要调用类属性和类方法,也不需要调用实例属性和实例方法。

# -*- coding: utf-8 -*-
class Tool(object):
    #创建类属性,用来记录创建对象的次数
    count=0
    @classmethod         #告诉解释器这是一个实例方法
    def a(cls):
        #对类属性做一个加1 的操作
        Tool.count+=1
        pass
    
    def __init__(self,name):
        self.name=name
    
    
    @staticmethod         #告诉解释器是个静态方法
    def s():
        print('*'*50)
        
        


tool=Tool('锄头')
tool.s()
Tool.s()

print(Tool.count)

结果:

**************************************************
**************************************************
1

单例模式:也叫做设计模式,作用是让类创建的对象只有唯一一个实例

# -*- coding: utf-8 -*-
class Dog(object):
    def __new__(cls,*args,**kwargs):   #返回引用
        print('11111')
        return super().__new__(cls)
    
    def __init__(self):  #初始化对象,定义属性
        print('2222')

dog=Dog()
print(dog)
xdog=Dog()
print(xdog)

结果:

11111
2222
<__main__.Dog object at 0x2ac7a95fe1d0>
11111
2222
<__main__.Dog object at 0x2ac7a95fe208>
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值