OOP 学习笔记

为何使用类:

使用类不仅仅是为了代码重用,它提供了描述现实世界问题结构和它们之间关系的非常有用的模型。包括两个方面:继承和组合。

我们的知识很大一部分是建立在分类的层次结构之上:将现实世界按各种规则分门别类的分解剖析。掌握之后又通过各种需要组合起来,反过来进一步理解这个世界,产生我们的智慧。

具体到类

  • 它是一种定义新种类的方式。
  • 从程序设计角度看,它又和函数和模块相似——是封装逻辑和数据的另一种方式。
  • 同时类也定义新的命名空间,这点和模块很像。
  • 它有和其它程序组成单元相比有三个显著的特点:
    • 多重实例:类好比是有个模具,每次调用类都会建立一个有自己命名空间的新对象,这个对象能够读取类的属性,并有自己的命名空间来存储自己的数据。
    • 继承:通过继承机制,类建立命名空间的层次结构,可以在这个层次结构中重新定义类的属性从而扩展类。
    • 运算符重载:类通过特定的协议方法,可以定义对象来响应内置类型上的几种运算。

相比C++和Java,Python 的OOP得到了简化。在Python中大多数OOP都可以简化为一个表达式:object.attribute。 当我们使用object.attribute这个表达式读取类的属性,调用对象的方法时,会产生一个动作——启动搜索对象连接树:从下到上,从左到右地搜索对象树,找到这个attribute首次出现的对象。

也就是说,取出一个属性就是简单地搜索一颗“树”。这个搜索过程(机制 ...

更多内容 »»

前端资源导航

在前端路上摸索前行,在这里分享自己长期关注的前端开发相关的优秀网站、博客、以及活跃开发者。欢迎更新。

自己 RSS 长期订阅了一些IT 和技术相关博客,这里是我Feedly 输出的opml,可直接导入一些RSS 阅读器: https://github.com/foru17/luolei-dotfiles/blob/master/feedly.opml

====

聚合&&周报订阅

名称 订阅地址 介绍
Html5 Weekly http://html5weekly.com/ Html 技术类
CSS Weekly http://css-weekly.com/
Javascript Weekly http://javascriptweekly.com/ JS相关,同样有 html,css 和工具相关
Web ...
更多内容 »»

IE下判断IE版本的语句

IE下判断IE版本的语句...[if lte IE 8]……[endif]

<!--[if lte IE 6]>
<![endif]-->
   IE6及其以下版本可见
<!--[if lte IE 7]>
<![endif]-->
   IE7及其以下版本可见
<!--[if IE 6]>
<![endif]-->
   只有IE6版本可见
<!--[if !IE]>
<![endif]-->
   除了IE以外的版本
<!--[if lt IE 8]>
<![endif]-->
   IE8以下的版本可见
<!--[if gte IE 7]>
<![endif]-->
   IE7及大于IE7的版本可见

可使用如下代码检测当前IE浏览器的版本 ...

更多内容 »»

Django1.7 新增 Migrations 功能

本文是学习Django文档的一个概要,详细内容请阅读 Django文档原文

Django 1.7主要改进内容:

  • 一个新的内置数据库迁移系统
  • Django 应用的一个重构概念
  • 改进了 Field API 模块,支持迁移,未来将会启用简单的组合键,支持 Django's ORM
  • 改进了可定制的 Manager 和 QuerySet 类
  • 一个可扩展的系统检测框架

更多内容请看发行说明。


简介

在Django 1.7 以前,Django 只支持添加新模型到数据库。syncdb命令(migrate命令的前身)不提供删除或更改现有的数据库结构的功能。

从 Django 1.7 开始,Django 将提供一种在你修改你的数据库结构(添加字段或删除表等)后进行数据库迁移的方法,它们大多设计成自动运行,但是你需要知道该什么时候迁移,在什么时候运行它们,以及运行中你可能遇到的常见问题。

工具 ...

更多内容 »»

博客正式在 GitHub 安家

醒悟


Geek是什么

Geek更多的是一种精神,一种态度,一种对技术的理解与信念。他们无法忍受丑陋的代码,拙劣的技术。他们思路开阔,技术娴熟,他们不甘平庸,追求完美。他们不会囿于常识,他们敢于突破。在常人眼中,他们不走寻常路,享受各种非主流的技术。但在他们自己眼中,这些又是那么得自然与优美。他们用自己的行为诠释着自己对于技术的理解,用那份固执传达着自己的信念。

他们掌握并热爱着技术,叛逆、执着,崇尚自由。

为什么不选择CSDN、Wordpress、Jekyll等技术

CSDN上发表博文虽然方便,但没有归属感,自己的博客还是应该自己做主。

Wordpress上手容易、功能强大、插件丰富。但是在我看来,这些优点同时也是它的缺点:太笨重、太无脑、不够酷、无用功能太多、可定制的粒度不够小。我更喜欢简洁快速粗暴的博客系统。

Jekyll非常棒,可惜它基于Ruby。对于Python爱好者而言,基于Python的Pelican显然更加可口。

探寻


我在搭建这个博客的过程中学到了很多很多有意思的技术。

搭建环境为 Linux,Windows下可能会麻烦一些 ...

更多内容 »»