一、什么是new

用于创建实例对象前调用,   我们不需要直接使用new方法

new 方法作为一个了解就行
# new 方法作为一个了解就行
class Demo():
    # new 初始化之前就会调用 在你需要进行数据处理 你就可以 在这里写一些逻辑
    def __new__(cls,age):
        if age < 18:
            return print('你当前的值 小于 18')
haha = Demo(10)

二,单例模式

是一个赏见设计模式,用于确保一个类    只有一个实例

普通模式

# 创建一个实例
class Demo():
    # 如果说类里面不想写内容的话 pass占位 pass是一个空语句 他不会作任何事情
    # 如果说想写一个空类 就可以用这个pass 占位
    pass

# 实例化类
实例化类1 = Demo()
实例化类2 = Demo()
实例化类3 = Demo()

# 我们可以通过id 来查看 每个实例化类的 内存地址
print(id(实例化类1))
print(id(实例化类2))
print(id(实例化类3))
# id地址不一样
1397769271040
1397769269696
1397770282176
# 这就是正常的创建一个类 每个类的内存地址不一样 每次都会换

  单例模式

# 单例模式
class Demo():
    # 如果说类里面不想写内容的话 pass占位 pass是一个空语句 他不会作任何事情
    # 如果说想写一个空类 就可以用这个pass 占位
    pass

# 实例化类
实例化类1 = Demo()      # 开辟了一个内存
实例化类2 = 实例化类1    # 将我们实例化类2 存到实例化1的内存地址中去
实例化类3 = 实例化类1    # 将我们实例化类3 存到实例化1的内存地址中去

print(id(实例化类1))
print(id(实例化类2))
print(id(实例化类3))

# 这样就叫单列模式

三、私有属性

类中的私有

在名字前加上一个__就是私有    如果是属性加上了就是私有属性    如果是方法加上了就是私有方法

私有方法和公有方法区别

私有方法和私有属性只能在类的内部被访问

公有方法 可以在全局被访问

私有属性
class Demo():
    # 初始化的方法
    def __init__(self,name,age):
        # 公有
        self.name = name
        # 只要属性名前 加__ 就是一个私有属性 私有属性值 age
        self.__age = age
    # 公有的方法
    def func(self):
        # 私有属性 只能在类里面使用
        print('这是一个公有的方法',self.__age)
        self.func2()

    # 私有方法
    # 如何来判断私有方法 加__ 就是一个私有方法
    def func2(self):
        print('123123')

# 实例化

人 = Demo('飞鸿',18)
人.func()
第二个人 = Demo('刘德华',18)
 私有方法和私有属性的区别是什么?
 一个是函数 一个是变量
 他们和公有方法和公有属性的一个区别是什么?
 私有:只能在 类的内部使用
 公有: 就是在任何地方都能使用

四、 装饰器

作用:避免代码重复编写,简化流程 ,职责分离 ,增强代码可读性

注意事项:

1,在闭包内  必须要传入一个形参

2,这个形参  就是所有函数    调用形参时就是在调用所有函数

def func(a):
     def func1():
         # 调用函数
         # a = 所有装饰器的函数 进行一个调用
         a()

什么是闭包?

这就是闭包
def func():
    def func1():
        print('我是闭包')
    return func1()

# 闭包调用
func()()

1,我们想使用装饰器 首先的定义一个闭包

2,函数名前 加@闭包名 是装饰器 也可以称为帽子

# 我们将闭包放过来
def func(a):
     def func1():
         # 调用函数
         # a = 所有装饰器的函数 进行一个调用
         a()
         print('我爱你')
         print('我很你')
         print('我想你')
         print('你太坏了')
         print('为了给你们演示装饰器的好处 累死老师我了')
         print('# 在打印一句话 ')
         print('_________________________________________________')
     return func1

# 在函数名的前面 加@和闭包名
# 这个就叫装饰器
# 作用:简洁方便  代码复用  批量处理  职责分离
# 我们想使用装饰器 首先的定义一个闭包
# 闭包返回: 重复的代码 职责分这就是闭包
def func():
    def func1():
        print('我是闭包')
    return func1()

# 闭包调用
func()()离
# 函数名前 加@闭包名 是装饰器 也可以称为帽子
# 闭包名 必须有行参 形参名随便定义
# 这个形参名 就是函数
@func
def A():
    print('我是函数A')
A()

@func
def B():
    print('我是函数B')
B()

@func
def C():
    print('我是函数C')
C()

@func
def D():
    print('我是函数D')
D()

@func
def E():
    print('我是函数E')
E()

@func
def F():
    print('我是函数F')
F()

更多推荐