一、语法

python类的机制是 C++ 的类机制和 Modula-3 的类机制的混合体:

允许多继承的类继承机制,派生类可以重写它父类的任何方法,一个方法可以调用父类中重名的方法;

1.动态特性: 类可以被动态创建, 并且可以在创建之后被修改;

2.类的成员 (包括数据成员) 通常都是 public的 (例外见下私有变量 (page 95)), 并且所有的成员函数都是 virtual 的;

3.Python 中没有关联对象成员和方法的隐式表达: 所有方法函数在声明时显式地将第一个参数表示为对象, 这个参数的值在方法被调用时隐式赋值;

4.Python 类本身就是对象. 这就提供了导入和重命名的语义;

5.与 C++ 和 Modula-3 不同的是, Python 的内置类型可以被当做基类来让使用者扩展;

6.另外, 像 C++ 一样, 大多数有特殊语法的内置操作符 (算数运算符, 下标操作符等等) 在类的实例中都可以重定义;

二、对象的别名

由于在实现的时候传递的是指针, 所以传递一个对象的开销很小;

三、命名空间

1.可以利用keyword:   del 语句来删除可写属性.

例如, del modname.the_answer 将从名为 modname 的模块中移除属性 the_answer.

2. import 语句, 和函数定义都将模块或函数绑定到了当前作用域.

四、类对象&实例对象

那么, MyClass.i 和 MyClass.f 就是合法的属性引用, 分别返回一个整数和一个函数对象.

类属性也可以被指定, 所以你可以给 MyClass.i 赋值以改变其数值.

实例化:(实例对象)

x = MyClass();

1.构造方法:

def __init__(self):

2.方法对象&函数对象:

x.f      是一个 method object,

 MyClass.f    是 一个function object.

x.f() 是严格等价于MyClass.f(x)

五、继承

1.派生类定义

BaseClassName 的定义对于派生类是可见的

class DerivedClassName(BaseClassName):

基类定义在另一个模块

class DerivedClassName(modname.BaseClassName):

2.多重继承

python支持多重继承

class DerivedClassName(Base1, Base2, Base3):

六、私有变量

以一个下划线带头的名字 (如 _spam) 应该作为非公共的 API (不管是函数, 方法或者数据成员).

七、空的类定义

一段 Python 代码中如果希望一个抽象的数据类型, 那么可以通过传递
一个类给那个方法, 就好像有了那个数据类型一样.

八、迭代器

定义一个 __iter__() 方法用以返回一个具有 __next__() 的对象. 如
果这个类定义了 __next__() , 那么 __iter__() 仅需要返回 self:

python的类的更多相关文章

  1. Python笔记——类定义

    Python笔记——类定义 一.类定义: class <类名>: <语句> 类实例化后,可以使用其属性,实际上,创建一个类之后,可以通过类名访问其属性 如果直接使用类名修改其属 ...

  2. 【python】类中的self

    在python的类中,经常会写self,代表对象自己.如下例: #coding=utf-8 class Foo: def __init__(self, name): self.name = name ...

  3. python基础——类和实例

    python基础——类和实例 面向对象最重要的概念就是类(Class)和实例(Instance),必须牢记类是抽象的模板,比如Student类,而实例是根据类创建出来的一个个具体的“对象”,每个对象都 ...

  4. python(6)-类

    面向对象编程是一种编程方式,此编程方式的落地需要使用 "类" 和 "对象" 来实现,所以,面向对象编程其实就是对 "类" 和 "对 ...

  5. 从C#到Python —— 4 类及面向对象

    http://www.cnblogs.com/yanxy/archive/2010/04/04/c2p_4.html 如果你熟悉C#,那么对类(Class)和面向对象(Object Oriented) ...

  6. Python type类具体的三大分类:metaclasses,classes,instance

    Python type类视角中的对象体系需要我们不断的学习,其中我们使用的时候需要注意.下面我们就看看如何才能更好的运用Python type类.下面的文章希望大家有所收获. 在单纯的Python t ...

  7. python元类分析

    刚開始接触到Python新式类中的元类的概念的时候非常是纠结了下..不知道这是个啥东西... 用下面几个定义来说明吧: (1)Python中,类也是对象..仅仅只是这样的对象比較的特殊,他用于创建别的 ...

  8. Python用类实现串以及对串的方法进行单元测试

    串是一种常见的数据结构,这里使用Python定义类来实现相应的方法.先看代码,再对相关知识进行讲解. # coding=utf-8 __all__=['ADTString'] class ADTStr ...

  9. Python基础-类

    Python基础-类 @(Python)[python, python基础] 写在前面 如非特别说明,下文均基于Python3 摘要 本文重点讲述如何创建和使用Python类,绑定方法与非绑定方法的区 ...

  10. 谨慎修改Python的类属性

    Python的类和类实例都是可变对象,可以随时给属性赋值,并且在原处修改. 在对类属性进行修改时需要特别小心,因为所有的类实例都继承共享类属性,除非实例本身存在和类属性同名的属性.对类属性进行修改,会 ...

随机推荐

  1. css3实现漂亮的倒影效果

    实际上还有很多CSS新属性并未包含进CSS3官方标准中.-webkit-box-reflect属性就是以谷歌浏览器为代表的Webkit渲染引擎独有的特征.-webkit-box-reflect的作用是 ...

  2. PTA 大炮打蚊子   (15分)

    现在,我们用大炮来打蚊子:蚊子分布在一个M×NM\times NM×N格的二维平面上,每只蚊子占据一格.向该平面的任意位置发射炮弹,炮弹的杀伤范围如下示意: O OXO O 其中,X为炮弹落点中心,O ...

  3. iconfont 入门级使用方法

    iconfont : what? 阿里妈妈MUX倾力打造的矢量图标管理.交流平台.设计师将图标上传到Iconfont平台,用户可以自定义下载多种格式的icon,平台也可将图标转换为字体,便于前端工程师 ...

  4. C++ 多线程中使用cout还是printf

    在多线程的设计模式下,如果多个线程都使用cout打印信息,那么很容易出现内容交替的现象,例如下图: 代码如下: 如果把cout替换成printf,那么就不会出现这个问题,运行结果如下图: 对应代码如下 ...

  5. MQTT连接服务器返回2

    /********************************************************************************* * MQTT连接服务器返回2 * ...

  6. git中的bug分支和Feature分支

    /*游戏或者运动才能让我短暂的忘记心痛,现如今感觉学习比游戏和运动还重要——曾少锋*/ 如果对于分支还不太明白的学者.请先参考:http://www.cnblogs.com/zengsf/p/7512 ...

  7. BZOJ3864: Hero meet devil【dp of dp】

    Description There is an old country and the king fell in love with a devil. The devil always asks th ...

  8. 0-1背包 codeforces 55 D

    题目链接: http://acm.hust.edu.cn/vjudge/contest/view.action?cid=29608#problem/D 我把它化成了0-1背包,应该可以直接用多重背包做 ...

  9. 【NOI2003】银河英雄传

    迭代不一定比递归好 原题: 公元五八○一年,地球居民迁移至金牛座α第二行星,在那里发表银河联邦创立宣言,同年改元为宇宙历元年,并开始向银河系深处拓展. 宇宙历七九九年,银河系的两大军事集团在巴米利恩星 ...

  10. FabricExpress.net supply high quality quilting fabric

    FabricExpress is a company specializing in high quality custom t-shirts,custom fabric,senior handmad ...