Day30.staticmethod方法

1.staticmethod方法_非绑定方法

# todo 二:非绑定方法 -----> 静态方法:
# todo      没有绑定给任何人:调用者可以是类、对象,没有自动传参的效果
class Mysql:
    def __init__(self, ip, port):
        self.nid = self.create_id()
        self.ip = ip
        self.port = port 
    
    # todo self是绑定给对象,@classmethod + cls是绑定给类
    # todo @staticmethod,非绑定方法    # 将下述函数装饰成一个静态方法, 调用时需要正常传参
    @staticmethod
    def create_id():
        import uuid
        return uuid.uuid4()
    
    # todo 添加@classmethod是绑定给类的
    @classmethod
    def f1(cls):
        pass
    
    # todo 不加任何装饰是绑定给对象的
    def f2(self):
        pass
    
obj1 = Mysql('1.1.1.1', 3306)

# Mysql.create_id(1, 2, 3)
# obj1.create_id(4, 5, 6)

print(Mysql.create_id, '\n')      # 非绑定静态方法
print(Mysql.f1, '\n')             # 绑定给类
print(obj1.f2, '\n')              # 绑定给对象

posted on 2024-06-27 15:13  与太阳肩并肩  阅读(2)  评论(0编辑  收藏  举报

导航