2018年8月26日python标准(内建)模块,内建函数,元类

今天学到的新单词:
sequence n数列,序列
reference n参考,v引用
variable adj变化的可变的
meta n元

1.系统标准(内建)模块:
PYTHON 标准库中提供了大量的模块,辅助开发人员的软件开发工作,了解 PYTHON 官方标准模块,有助于对 PYTHON 的理解和操作。

***********************************************************************************************************************

2.系统内建函数:

系统内建函数包含大量的操作处理,这里就较为重要功能较为强大的几个函数做简单的介
绍,其他的内置函数请参考官方文档

 

*******************************************************************************************

3.万物根本:元类:

如果说一切皆对象,那么万物起始就是元类,元类是用来定义和构建类型的

类:也是对象
在大多数编程语言中,类就是一组用来描述如何生成一个对象的代码段。在 Python 中这一点仍
然成立:但是,Python 中的类还远不止如此。类同样也是一种对象。是的,没错,就是对象。只要
你使用关键字 class,Python 解释器在执行的时候就会创建一个对象
这个对象(类对象 ObjectCreator)
拥有创建对象(实例对象)的能力。但是,它的本质仍然是一个对象,于是乎你可以对它做
如下的操作:
你可以将它赋值给一个变量
你可以拷贝它
你可以为它增加属性
你可以将它作为函数参数进行传递

类的动态创建:
因为类也是对象,你可以在运行时动态的创建它们,就像其他任何对象一样。首先,你可
以在函数中创建类,使用 class 关键字即可

class创建类的底层:type  创建类、属性、方法
type(类名,(由父类名称组成的元组(针对继承的情况,可以为空)),{包含属性的字典(名称和值)})

Test2 = type("Test2",(),{}) #定了一个 Test2 类

FooChild = type('FooChild', (Foo,), {'echo_bar': echo_bar}) #让FooChild 类中的 echo_bar 属性,指向了上面定义的函数

可以看到,在 Python 中,类也是对象,你可以动态的创建类。这就是当你使用关键字
class 时 Python 在幕后做的事情,而这就是通过元类来实现的


再说元类:
元类就是用来创建类的“东西”。你创建类就是为了创建类的实例对象, Python 中的类也是对象。
元类就是用来创建这些类(对象)的,元类就是类的类
函数 type 实际上是一个元类。type 就是 Python 在背后用来创建所有类的元类。
你可以通过检查__class__属性来看到这一点。
Python 中所有的东西,注意,我是指所有的东西——都是对象。这包括整数、字符串、函数以及类。它们全
部都是对象,而且它们都是从一个类创建而来,这个类就是 type
元类就是创建类这种对象的东西。type 就是 Python 的内建元类,当然了,你也可
以创建自己的元类

自定义元类:
你可以在定义一个类的时候为其添加__metaclass__属性。
class Foo(object):
    __metaclass__ = something…
    ...省略...
Foo 中有__metaclass__这个属性吗?如果有,Python 会通过__metaclass__创建一个名
字为 Foo 的类(对象)
如果 Python 没有找到__metaclass__,它会继续在 Bar(父类)中寻找__metaclass__属
性,并尝试做和前面同样的操作。
如果 Python 在任何父类中都找不到__metaclass__,它就会在模块层次中去寻找
__metaclass__,并尝试做同样的操作。
如果还是找不到__metaclass__,Python 就会用内置的 type 来创建这个类对象。
__metaclass__中放置些什么代码呢?
可以创建一个类的东西。type,或者任何使用到 type 或者子类化 type的东西都可以
自定义元类的作用:
拦截类的创建
修改类
返回修改之后的类

如果你想让你的模块里所有的类的属性都应该是大写形式。有好几种方
法可以办到,但其中一种就是通过在模块级别设定__metaclass__。采用这种方法,这个模
块中的所有类都会通过这个元类来创建,我们只需要告诉元类把所有的属性都改成大写形
式就万事大吉了


为什么使用元类?
现在回到我们的大主题上来,究竟是为什么你会去使用这样一种容易出错且晦涩的特性?
好吧,一般来说,你根本就用不上它:
“元类就是深度的魔法,99%的用户应该根本不必为此操心。如果你想搞清楚究竟是否需要
用到元类,那么你就不需要它。那些实际用到元类的人都非常清楚地知道他们需要做什么,
而且根本不需要解释为什么要用元类。” —— Python 界的领袖 Tim Peters

休闲一刻:
有氧运动和无氧运动的区别:
有氧运动是指人体在氧气充分供应的情况下进行的体育锻炼。即在运动过程中,人体吸入的氧气
与需求相等,达到生理上的平衡状态。简单来说,有氧运动是指强度低且富韵律性的运动,其运
动时间较长(约30分钟或以上),运动强度在中等或中上的程度(最大心率值的60%至80%)。
氧气能充分燃烧体内的糖分,还可消耗体内脂肪,增强和改善心肺功能,预防骨质疏松,
调节心理和精神状态,是健身和减肥的主要运动方式
有氧运动如:步行、慢跑、滑冰、游泳、骑自行车、打太极拳、跳健身舞、做韵律操等。

无氧运动是指肌肉在“缺氧”的状态下高速剧烈的运动。无氧运动大部分是负荷强度高、瞬间
性强的运动,所以很难持续长时间,而且疲劳消除的时间也慢,无氧运动是一些运动非常剧烈
例如赛跑、举重、投掷、跳高、跳远、拔河、肌力训练等。

展开阅读全文

没有更多推荐了,返回首页