分类: 开发

478 篇文章

032、模块sys:系统相关
模块sys:系统相关 sys模块是与系统相关的标准库模块: import sys 命令行参数 sys模块一个重要的作用是解析命令行的参数。 %%writefile print_args.py import sys print(sys.argv) Overwriting print_args.py 运行这个程序: !python print_args.py 1 foo ['print_args.py…
031、多重继承
多重继承 多重继承指的是一个类可以同时从多个父类继承行为与特征的功能。Python 支持多重继承的。 例如,可以将之前的Leaf类进行抽象,树叶Leaf类,父类: class Leaf(object): def __init__(self, color='green'): self.color = color ColorChangingLeaf类,颜色可变的树叶,继承Leaf类…
030、公有、私有、特殊以及静态的方法和属性
公有、私有、特殊以及静态的方法和属性 一些以 _ 开头的都是对象的特殊方法和属性。通常来说: 以字母开头都是公有的方法和属性,可以直接调用; 在Python中,“私有”的方法和属性以_开头,不过,并不存在真正私有的方法和属性,所谓“私有”只是不会被代码自动完成所记录,无法在按键时自动补全。 以__开头并以__结尾的是一些系统内置的属性和方法。 以__开头不以__结尾的是一些更加特殊的方法,调用方式…
029、继承与复用
继承与复用 在自定义类型的基本形式中: class ClassName(ParentClass): """class docstring""" def some_method(self, ...): return ... ParentClass是用来进行继承的,被继承的ParentClass是父类,定义的ClassName是子类。可以认为…
028、方法与属性
方法与属性 自定义类型中通常要定义一些方法和属性。 手动添加属性 属性可以手动添加: class Leaf(object): """A leaf falling in the woods.""" pass leaf = Leaf() leaf.color = "green" leaf.color 'green' 这样添…
027、面向对象简介
面向对象简介 对象一般是指一个类的实例,具有相关的成员变量和成员函数,在Python中成员变量叫做属性,成员函数叫做方法。 什么是对象 Python中几乎所有的东西都是对象。基本类型是对象,如整数: a = 10 其属性与方法: a.real 10 a.conjugate() 10 对象在内存中有一个地址与之对应,这个地址可以用id()函数查看: id(len) 4514492720 同一个对象的…
026、变量作用域
变量作用域 函数外部定义的变量可以在函数里面使用、修改和重新赋值,这涉及到Python中变量作用域的问题。 变量作用域(Variable Scope)是指变量的有效生存空间。 在函数中,Python会按照以下顺序,在各个作用域的命名空间中寻找变量: 函数局部作用域(Local Function Scope)。 闭包作用域(Enclosing Scope)。 全局作用域(Global Scope)。…
025、上下文管理器
上下文管理器 读写文件时,如果一个文件被打开,且未被正常关闭,可能会出现一些意想不到的结果。 Python提供了上下文管理器的机制来解决这个问题,它通常与关键字with一起使用。对于上面的例子,用with语句调用的方式为: with <expression>: <statements> with open('my_file', 'w'…
024、装饰器
装饰器 基础用法 以函数作为参数,并且返回一个新函数的函数是一个装饰器: def dec(f): print(f'I am decorating function {f.__name__}') return f dec(len) I am decorating function len 装饰器可以在函数定义时用@调用: @dec def add(x, y): return x …
023、迭代器与生成器
迭代器与生成器 迭代器 可迭代对象可以在 for 循环中使用: x = [2, 4, 6] for n in x: print(n) 2 4 6 之所以可以被for循环迭代,是因为这些对象拥有一个迭代器,可以用.__iter__()方法获得: x.__iter__() 一个迭代器需要满足两个条件: .__iter__()方法返回自身 .__next__()方法返回下一个迭代值,当迭代完成后,抛出一…