python小知识

函数的可变参数

*args: 接受普通参数,以元祖形式保存。
**kwargs:接受关键字参数,以字典形式保存。
更新中。。。。。

匿名函数(lambda)

myFun = lambda: print("我是大色狼")

使用dir(builtins)查看常用的内置函数
python的单例模式
class signlClass:
    def __new__(cls, *args, **kwargs):
        if not hasattr(cls, '_sgl'):
            cls._sgl = super().__new__(cls, *args, **kwargs)
        return cls._sgl

if __name__ == '__main__':
    sa = signlClass()
    sb = signlClass()
    print(id(sa), id(sb))
# 输出 4383090112 4383090112
类装饰器
# 类装饰器
def decorate(a_class):
    class NewClass:
        def __init__(self, age, color):
            self.wrapped = a_class(age)
            self.color = color
        def display(self):
            print(self.color)
            print(self.wrapped.age)
    return NewClass

@decorate
class Cat:
    def __init__(self, age):
        self.age = age
    def display(self):
        print(self.age)

if __name__ == '__main__':
    c = Cat(18, 'yellow')
    c.display()
# 输出 yellow 18

你可能感兴趣的:(python小知识)