Python高级语法 Day01

1.property属性

2.上下文管理器

上下文管理器是 Python 中一种强大且实用的工具,它主要用于管理资源的分配和释放,确保资源在使用完毕后能被正确清理,避免资源泄漏。上下文管理器通常与 with 语句结合使用,能让代码更加简洁、安全和易读。

上下文管理器本质是一个实现了 __enter__() 和 __exit__() 方法的对象。__enter__() 方法在进入 with 语句块时被调用,负责资源的分配和初始化;__exit__() 方法在离开 with 语句块时被调用,负责资源的释放和清理。

# 1定义一个File类
class File(object):
    def __init__(self, file_name, file_model):
        self.file_name = file_name
        self.file_model = file_model

    # 2实现 __enter__() 和 __exit__()方法
    def __enter__(self):
        print("这是上文")
        self.file = open(self.file_name, self.file_model)
        return self.file

    def __exit__(self, exc_type, exc_val, exc_tb):
        print("这是下文")
        self.file.close()


# 3然后使用 with 语句来完成操作文件
with File("1.txt", "r") as f:
    file_data = f.read()
    print(file_data)

3.生成器

注意:

这是while处理的代码 

def mygenerator(n):
    for i in range(n):
        print('开始生成...')
        yield i
        print('完成一次...')
gen = mygenerator(3)
while True:
    try:
        print(next(gen))
    except StopIteration:
        break

4.拷贝

之前已经讲过,现在说一下总体的理解

注意那个赋值是针对可变类型的数据的,不可变的会重新开辟一个空间。 

 以上图可以说明拷贝的地址空间问题,浅拷贝内部的地址还是一样的只不过外部不一样。深拷贝都不一样。之所以说拷贝只针对可变对象是因为可变对象是有安全问题的,但是不可变对象没有,如果对于不可变对象进行拷贝得到的只是原内容的地址拷贝,类似于对于可变对象的赋值。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值