Python中的特殊方法和语法

一、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

你可能感兴趣的:(Python中的特殊方法和语法)