一、Python中特殊方法
1、Python如何把任意类型变量变成str?
- 因为任意数据类型的实例都有一个特殊方法_str_()
- _repar_等价于_str_,它们之间的区别还需要进一步了解
2、如果一个类表现得像一个list,要获取有多少个元素,就得用 len() 函数。
- 要让 len() 函数工作正常,类必须提供一个特殊方法len(),它返回元素的个数。
二、Python特殊语法
a,b = a,a+b
等价于
t = a
a = b
b = t+b
相比于java,不得不感叹Python真的是有三头六臂!!!
例子
- 斐波那契数列是由 0, 1, 1, 2, 3, 5, 8...构成。
- 请编写一个Fib类,Fib(10)表示数列的前10个元素,print Fib(10) 可以打印出数列的前 10 个元素,len(Fib(10))可以正确返回数列的个数10。
class Fib(object):
def __init__(self, num):
a,b,L = 0, 1, []
for x in range(num):
L.append(a)
# a,b = b,a + b
t = a
a = b
b = t + b
self.numbers = L
def __len__(self):
return len(self.numbers)
def __str__(self):
return str(self.numbers)
__repr__ = __str__
f = Fib(10)
print f
print len(f)
打印结果:
[0, 1, 1, 2, 3, 5, 8, 13, 21, 34]
10