类的成员: 在类中的私有字段和私有方法是不能被类意外的方法调用的。只能在类的内使用。 在普通字段和方法前加两个下划线就可以把普通字段定义成私有字段或方法。 在子类中,不能执行父类中的方法,不能获得父类的字段。示例: 类中的特殊成员 obj = bar() 执行 __init__ 方法 obj() 执 ...
分类:
其他好文 时间:
2018-04-12 00:23:54
阅读次数:
178
_str__和__repr__ 如果要把一个类的实例变成 str,就需要实现特殊方法__str__(): class Person(object): def __init__(self, name, gender): self.name = name self.gender = gender def... ...
分类:
编程语言 时间:
2018-04-09 18:56:44
阅读次数:
155
__foo__: 定义的是特殊方法,一般是系统定义名字 ,类似 __init__() 之类的。 _foo: 以单下划线开头的表示的是 protected 类型的变量,即保护类型只能允许其本身与子类进行访问,不能用于 from module import * __foo: 双下划线的表示的是私有类型(... ...
分类:
编程语言 时间:
2018-04-09 18:45:25
阅读次数:
290
在Python中有很多以双下划线开头且以双下划线结尾的固定方法。他们会在特定的时机被触发执行。 __init__ 就是其中之一,它会在实例化之后自动被调用。以完成实例的初始化。 ...
分类:
编程语言 时间:
2018-04-08 00:12:03
阅读次数:
211
01 data model/frenchdeck.py 1. Python解释器碰到特殊的句法时,会使用__特殊方法__去激活一些基本的对象操作。 特殊方法的存在是为了被解释器用的。没有my_object.len()这种写法,应该用len(my_object)。 比如my_collection[ke ...
分类:
编程语言 时间:
2018-04-03 22:11:19
阅读次数:
189
Python的类有大量的特殊方法,其中比较常见的是构造函数和析构函数。Python中类的构造函数是__init__(),一般用来为数据成员设置初始值或进行其他必要的初始化工作,在创建对象时被自动调用和执行。如果用户没有设计构造函数,Python将提供一个默认的构造函数用来进行必要的初始化工作。Pyt ...
分类:
其他好文 时间:
2018-03-26 19:09:32
阅读次数:
172
迭代器 本节进行迭代器的讨论。只讨论一个特殊方法 __iter__ ,这个方法是迭代器规则的基础。 迭代器规则 迭代的意思是重复做一些事很多次 就像在循环中做的那样。__iter__ 方法返回一个迭代器,所谓迭代器就是具有next方法的对象,在调用next方法时,迭代器会返回它的下一个值。如果nex ...
分类:
编程语言 时间:
2018-03-22 19:16:24
阅读次数:
152
第四章教材总结 一.类 类的定义有两部分:类声明和类体 成员变量:类体中的变量声明所声明的变量叫做成员变量(如果局部变量与成员变量同名则隐藏成员变量,在此方法中失效)。 方法的定义包括方法头和方法体。 二.构造方法与对象的创建 构造方法是类的一种特殊方法,与类名完全相同,没有类型。 可以存在若干构造 ...
分类:
其他好文 时间:
2018-03-19 00:26:23
阅读次数:
224
1. 简介 本指南归纳于我的几个月的博客,主题是 魔法方法 。 什么是魔法方法呢?它们在面向对象的Python的处处皆是。它们是一些可以让你对类添加“魔法”的特殊方法。 它们经常是两个下划线包围来命名的(比如 __init__ , __lt__ )。但是现在没有很好的文档来解释它们。 所有的魔法方法 ...
分类:
编程语言 时间:
2018-03-14 12:57:43
阅读次数:
209
1. 编写实现上下文管理器 1.1 作为一个类: 上下文管理协议 任何实现了 上下文管理协议 的对象都可以用作上下文管理器. 该协议包含两个特殊方法: : 调用该方法, 任何返回值都会绑定到指定的 as 语句. : 接受代码块中出现错误时填入的 3 个参数. 如果没有错误, 三个都为 None. 出 ...
分类:
编程语言 时间:
2018-03-10 14:07:11
阅读次数:
227