愚公移山日记·41

愚公移山日记·41

今天是在B站学习这门课程的最后一天,收获蛮多的了解到了很多之前没有接触过的新知识。在B站上这门课一共分为16天,但是我通过视频却足足学了一个月,今天刚好是第三十天。
简单总结一下吧:

  • 这门课程中的知识点很密集,老师的每一句话几乎都是知识点,而且这老师的讲解很接地气。
  • 这门课程中讲解了很多关于Linux系统的知识,这门课程使用的是乌班图系统如果你看我之前的博客的话会看到,MySQL也是在乌班图系统下操作的(但是你敢相信我到现在还在使用windows系统,而且没有使用虚拟机)。
  • 当然在我学完这门课程之后我依旧没有把Linux系统放在眼里,直到今天下午我打算找一些关于网路爬虫的课程,才发现,一旦遇到python的进阶教程,全部清一色的使用Linux系统,被迫无奈,只得下载乌班图。

就说这么多吧,还要把今天的学习任务搞一下。

with 管理上下文

'''
类 : MyFile()
类方法:
    __enter__() 上文方法
    # __exit__() 下文方法
    # __init__() 方法 接受参数并且初始化

with MyFile('hello.txt','r') as file:
    file.read()
'''


class MyFile(object):
    # __enter__() 上文方法
    def __enter__(self):
        print('进入上文')
        # 打开文件
        self.file = open(self.file_name, self.file_model)
        # 返回打开文件的文件资源
        return self.file

    # __exit__() 下文方法
    def __exit__(self, exc_type, exc_val, exc_tb):
        print('进入下文')
        # 关闭文件资源
        self.file.close()

    # __init__() 方法 接受参数并且初始化
    def __init__(self, file_name, file_model):
        # 保存文件名和文件打开模式 到实例属性中
        self.file_name = file_name
        self.file_model = file_model


if __name__ == '__main__':
    with MyFile('hello', 'r') as file:
        # 开始读取文件
        file_data = file.read()
        print(file_data)

装饰器实现上下文

'''
思路:
    def myopen(file_nam,file_model)
            上文(打开资源)
            yield
            下文(关闭资源)
装饰器 装饰函数的步骤
导入模块
from contextlib import  contextmanager
开始展装饰
'''

from contextlib import contextmanager


@contextmanager
def myopen(file_name, fiel_model):
    print('进入上文')
    # 打开文件
    file = open(file_name, fiel_model)
    # 返回资源
    yield file
    print('进入下文')
    # 下文
    # 关闭资源
    file.close()


with myopen('hello', 'r') as file:
    file_data = file.read()
    print(file_data)

魔法属性和方法-1

# __doc__
# __module__
# __init__
# __del__

class Goods(object):
    '''这是一个商品的类 Goods'''

    def set_price(self):
        '''这是Goods类中定义的设置价格的方法'''
        pass
    def __del__(self):
        print('__del__ 正在执行')


# 类的描述信息
# 类名.__doc__
print(Goods.__doc__)
goods = Goods()
# 对象方法的描述
# 对象.方法名.__doc__
print(goods.set_price.__doc__)
# 获取当前模块
print(goods.__module__)
# 获取对象所属类
print(goods.__class__)
# 删除对象会执行 对象的__del__()
del goods

魔法属性和方法-2

# __call__ 当使用对象名() 会调用该方法
# __dict__ 获取对象的信息  对象名.__dict__ 对象的实例属性
#             获取类的信息   类名.__dict__ 模块、类描述、对象的方法...
# __str__() 打印对象的会调用 print(obj) str 方法必须要return 而且return的必须是一段字符串
# 用字典的书写格式操作对象的方法
# __getitrm__  对象['xxxx']
# __setitem__ 对象['xx' ] = xxx
# __delitem__del 对象['xx']

class Goods(object):
    '''这是一个商品的类 Goods'''
    # 类属性
    goods_color = '白色'

    def __init__(self):
        # 实例属性
        self.org_price = 100
        self.discount = 0.7

    def set_price(self):
        '''这是Goods类中定义的设置价格的方法'''
        pass

    def __call__(self, *args, **kwargs):
        print('__call__ 方法正在被调用')

    def __str__(self):
        return 'kkkkk'

    def __del__(self):
        print('__del__ 正在执行')

    def __getitem__(self, item):
        print('key = ', item)

    def __setitem__(self, key, value):
        print('key = %s,valu = %s' % (key, value))

    def __delitem__(self, key):
        print('要删除key = ', key)


goods = Goods()
# 对象名() 回去调用对象的__call__()方法
goods()
# print打印对象的时候,默认输出<__mian__.Goods object at xkooeee>
print(goods)

# 通过 __dict__ 获取对象信息,返回字典
print(goods.__dict__)
# 通过__dict__ 获取类的信息  类名.__dict__  返回值是一个字典
print(Goods.__dict__)

# dict1 = {}
# dict1['a'] = 10

# goods['a'] 调用__getitem__ 方法
goods['a']

# goods['a'] =10  调用  __setitem__ key,value
goods['a'] = 10

# del goods['a'] 调用 __delitem__ key
del goods['a']

以上就今天的学习成果

后记

学到今天也有几个月了,又突然感觉之前学习的都忘记了╮(╯▽╰)╭以后还得丢去找一些实战的例子去练,其实今天也想去在python123.com 上找点题目去练习,写了两道就感觉力不从心,看到题目完全没有思路,所以以后每天都要写一道题练练手。
还有 学python不仅仅是学python md所有的计算机知识都得学,尤其是Linux的知识必须的会要不人进阶的课程根本没法学。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值