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%)。 氧气能充分燃烧体内的糖分,还可消耗体内脂肪,增强和改善心肺功能,预防骨质疏松, 调节心理和精神状态,是健身和减肥的主要运动方式 有氧运动如:步行、慢跑、滑冰、游泳、骑自行车、打太极拳、跳健身舞、做韵律操等。

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

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

发表于

我来说两句

0 条评论
登录 后参与评论

相关文章

来自专栏C语言及其他语言

[每日一题]选择法排序

谈到排序的方法,可以说是多种多样,比较常用的是冒泡法,而效率比较高的是快速法,今天给大家介绍的则是选择法 题目描述 用选择法对10个整数从小到大排序。 输入 ...

2966
来自专栏深度学习计算机视觉

原型模式

原型模式的简单程度仅次于单例模式,核心方法就一个clone(),在java中只需要实现接口Cloneable即可 原型模式通过把对象复制(clone)一遍,产生...

3235
来自专栏北京马哥教育

国家认证的Python工程师有什么能力要求?

Python这门语言近来是越来越火,在国家层面越来越被重视。除了之前热议的加入高考和中小学教育之外,现在连普通大学生也无法逃脱Python的毒手了。

4340
来自专栏java一日一条

哪些因素影响Java调用的性能?

这得从一个小故事说起。我在一个Java核心库的邮件列表中提交了一个修改 ——重写了一些本是 final 的方法。一石激起千层浪,这一改动引发了几番讨论。而其中一...

1201
来自专栏阿杜的世界

《重构》阅读笔记-代码的坏味道

开发者必须通过实践培养自己的经验和直觉,培养出自己的判断力:学会判断一个类内有多少个实例变量算是太大、学会判断一个函数内有多少行代码才算太长。

742
来自专栏Java学习网

影响Java调用性能有哪些因素

影响Java调用性能有哪些因素 当时发生了什么? 这得从一个小故事说起。我在一个Java核心库的邮件列表中提交了一个修改 ——重写了一些本是 final 的方法...

23810
来自专栏PPV课数据科学社区

【学习】《R实战》读书笔记(第四章)

读书会是一种在于拓展视野、宏观思维、知识交流、提升生活的活动。PPV课R语言读书会以“学习、分享、进步”为宗旨,通过成员协作完成R语言专业书籍的精读和分享,达到...

2975
来自专栏java工会

深度思考编程的艺术

1758
来自专栏ACM小冰成长之路

KWIC-C/C++实现

吐槽 最近我们 JavaJava 老师不知道为啥非要我用 C/C++C/C++ 来实现 KWICKWIC,但是因为没有上过课,不知道这个东西是干嘛的,所以想网上...

24910
来自专栏数据分析

[数据清洗]- Pandas 清洗“脏”数据(三)

预览数据 这次我们使用 Artworks.csv ,我们选取 100 行数据来完成本次内容。具体步骤: 导入 Pandas 读取 csv 数据到 DataFra...

4528

扫码关注云+社区

领取腾讯云代金券