类是对象的蓝图和模板,对象的类的实例。每个对象是独一无二的,但对象一定属于某一类。对象有属性(静态特征)和行为(动态特征),当把一群有相同属性和行为的对象提取出来就定义出了一个类
定义类
通过class
来定义类,然后在类中用函数定义类的方法(方法是对象可接受的消息,调用方法),这样对象的行为(动态特征)就能描述出来
from math import sqrt
class Distance(object):
def __init__(self,x,y):
self.x=x
self.y=y
def distance_to(self,other):
t=(self.x-other.x)**2+(self.y-other.y)**2
print('diatance'+'=',sqrt(t))
def main():
point_a=Distance(0,0)
point_b=Distance(3,4)
point_a.distance_to(point_b)
if __name__=='__main__':
main()
解释:
-
在上面片段中,Distance是类名,括号里是表示这个类是从那个类中继承过来的,如果没有合适的类就用
object
-
定义了
__init__
方法,通过它,可以把一些属性(静态特征)绑在创建的对象上。这里x,y就是对象所具有的属性。 -
注意
__init__
的第一个参数永远是self
这表明把各个属性绑在创建的对象本身。同理other
表示同一类的其他对象 -
当本对象有x,y属性后,在类之内访问这些属性就不用去类的外面,用
self.
就可以访问了 -
创建了
distance_to
方法,方法的命名可以用‘驼峰命名’也可以用小写加下划线连接的方式。 -
通过
类名+()
创建了一个对象。并使point_a指向了这个对象,括号内,如果__init__有要绑定的属性,那么就在创建对象时给定属性。 -
调用方法时(给对象传入
distace_to
的消息),和给函数传入参数是一样的,不过就是第一个参数self
不用传入 -
补充:私有的方法通过在定义时在名称开头加两个连续的下划线加以取人但并不是在语法上严格保证私有属性