Python 中的用户自定义类型

时间:2020-12-26 22:20:39

Python中面向对象的技术

              Python是面向对象的编程语言,自然提供了面向对象的编程方法。但要给面向对象的编程方法下一个定义,是很困难的。问题关键是理解对象
的含义。对象的含义是广泛的,它是对现实世界和概念世界的抽象、模拟和提炼。


对象的方法与函数类似,但是还有两方面的区别:

1-方法定义在类的内部,是类的一部分,他们之间的关系是很明显的;

2-调用的语法不一样;

>>> class Time:
... pass
...
...
>>> def printTime(time):
... print str(time.hours)
...
...
>>> now = Time();
>>> now.hours = 10;
>>> printTime(now)
10
>>>

我们通过改变缩进可以改变函数的作用域的归属:

>>> class Time:
... def printTime(self):
... print str(self.hours)
...
... def increment(self,hours):
... self.hours = hours + self.hours
... while self.hours >= 12:
... self.hours = self.hours - 12
... self.day = self.day + 1
...
...
...
...
>>>

可选择的参数

我们曾见到一些内置的函数,能够接受的参数个数是可变的。同样,你也能够定义可变参数的函数。下面这个函数求从数head开始,到tail为尾,步长为step的所有数之和。

>>> def total(head,tail,step):
... temp = 0;
... while head <= tail:
... temp = temp + head;
... head = head + step;
...
... return temp;
...
...
>>> total(1,100)
Traceback (most recent call last):
File "<input>", line 1, in <module>
TypeError: total() takes exactly 3 arguments (2 given)
>>> total(1,100,3)
1717
>>> def total(head,tail,step = 2):
... temp = 0;
... while head <= tail:
... temp = temp + head;
... head = head + step;
...
... return temp;
...
...
>>> total(1,100);
2500
>>> total(1,100,3);
1717
>>>