- 博客(10)
- 问答 (2)
- 收藏
- 关注
原创 Python的方法解析顺序(MRO)
方法解析顺序, Method Resolution Order从一段代码开始考虑下面的情况:class A(object): def foo(self): print('A.foo()')class B(object): def foo(self): print('B.foo()')class C(B, A): passc = C()c.fo
2017-09-26 21:57:11 4187
原创 Python中的接口
接口(interface)接口, (按照我自己的理解)最接地气的定义是: 实体向外暴露的公共可访问方法与属性. 这个实体可以是Class, Object, Software, 等任意可以看作一个整体的东西. 外界通过它们的interface与它们进行交互. 按照Wikipedia的说法, 接口与协议(Protocol)是同义词, 因为接口在定义交互方式的同时肯定也定义了交互时的通信内容, 格
2017-09-26 20:18:47 6825 2
原创 Python对象的属性访问过程
只想回答一个问题: 当编译器要读取obj.field时, 发生了什么? 一个简单的属性访问, 其实过程还蛮曲折的. 总共有以下几个step: 1. 如果obj instance 本身有这个属性, 返回. 如果没有, 执行 step 2. 2. 如果obj class 有这个属性, 返回. 如果没有, 执行step 3. 3. 如果在obj class 的父类有这个属性, 返回. 如果没有,
2017-09-24 16:53:51 1511
原创 Python 定义只读属性
Python是面向对象(OOP)的语言, 而且在OOP这条路上比Java走得更彻底, 因为在Python里, 一切皆对象, 包括int, float等基本数据类型. 在Java里, 若要为一个类定义只读的属性, 只需要将目标属性用private修饰, 然后只提供getter()而不提供setter(). 但Python没有private关键字, 如何定义只读属性呢? 有两种方法, 第一种跟J
2017-09-24 15:45:56 12064 1
原创 Python 定义私有属性
Python没有类似于Java中的private关键字, 但也可以为类定义私有属性: 将属性命名为: __field.class Vector2D(object): def __init__(self, x, y): self.__x = float(x) self.__y = float(y) self.xx = x self
2017-09-23 20:58:30 5141
原创 Python str.format
Python不仅支持C风格字符串格式化, 还支持利用format方法来格式化字符串. format方法通过占位符{}来指定参数及参数格式.指定参数通过位置指定参数位置索引从0开始可以省略数字print('{} + {} = 5'.format(2, 3))print('{0} + {1} = 5'.format(2, 3))输出:2 + 3 = 52 + 3 = 5通过名字指定参数prin
2017-09-23 18:34:48 926
原创 Python与函数重载
函数重载是OOP的基本特性之一, 名字相同但参数类型或个数不同时执行不同的函数. 但因为Python是弱类型语言(不需要声明变量类型), 所以它不支持通过参数类型来支持重载. 这是Python在3之前的不足之处. 3.4之后, Python也提供重载机制: 转发(Dispatch).singledispatch#!/usr/bin/python3from functools import singl
2017-09-21 15:53:38 6777
原创 Python中的修饰器
Decorator有种设计模式叫修饰器模式, 它可以在不修改目标函数代码的前提下, 在目标函数执行前后增加一些额外功能. 例如:def dec(fn): print('hello, I am a decorator') return fn@decdef fn1(a): print('hello, I am in fn1(%r)'%(a))@decdef fn2(a):
2017-09-21 14:54:39 11412
原创 Python 的闭包
什么是闭包?闭包, 英文为closure. 首先, 闭包是一种特殊的函数. 特殊之处在于它包含了非本地也非全局的变量. outer_var = [] def inner_fn(val): outer_var.append(val) return sum(outer_var) * 1.0 / len(outer_var) return inn
2017-09-21 13:25:45 219
原创 Tex Studio配置字典用于检查拼写
下载字典文件从 https://extensions.openoffice.org/en/project/english-dictionaries-apache-openoffice 下载一个oxt字典文件.配置Tex Studio工具栏–> Options–>Config TeXStudio–>Language Checking 配置一下路径就OK了.
2017-09-05 15:17:31 9307
空空如也
Myeclipse9打开struts.xml出错
2012-12-26
ITeye博客的格式问题
2012-12-04
TA创建的收藏夹 TA关注的收藏夹
TA关注的人