一、类
1.定义
面向对象最重要的概念就是类(Class)和实例(instance)。
class Cat: """这是一个猫类""" # class 关键字 # Cat 类名 同变量名 大驼峰命名法 # 三引号中的内容是解释这个类的用途
定义一个叫做Cat的类会创建一个对象类(object class)
类对象就是一个创建对象的工厂。如果要新建一个Kitty对象,可以把Cat当做函数来调用。
1 #实例化对象 2 kitty = Cat()
2.属性
我们可以通过句点法来实现实例的赋值,如下:
class Cat: """这是一个猫类""" pass kitty = Cat() #句点法给实例赋值 kitty.color = 'white' kitty.eat = 'food' print(kitty) #打印出它的内存空间 #可以赋值,当然也可以引用 print(kitty.color)
我们将值赋给一个对象的有命名的元素,这些元素称为属性。也就是上例中的color和eat就是我们的Kitty对象的属性。
3.初始化
先把属性全部加入init,然后将实例对象名修改为self,同时将参数传入
3.1 实例属性
class Cat: """猫类""" #初始化方法 def __init__(self,color,eat): #定义属性 self.color = color self.eat = eat kitty = Cat('white','fish') xiaohua = Cat('white','shengfan') print(kitty.color) print(xiaohua.eat)
3.2 类属性
class Cat: """猫类""" #类属性 count = 0 #初始化方法 #每次实例化,每次生成一个新的对象,都会使用 def __init__(self,color,eat): #定义属性 self.color = color self.eat = eat #针对猫进行计数 Cat.count += 1 kitty = Cat('white','fish') xiaohua = Cat('white','shengfan') print(Cat.count)
二、方法
1.类和函数
class point: """表示二维平面中的一个点""" def __init__(self,x,y): self.x = x self.y = y pp1 = point(1,2) pp2 = point(3,5) def distance(p1,p2): return ((p1.x-p2.x)**2 + (p1.y-p2.y)**2)**0.5 distance(pp1,pp2)
2.类和方法
class point: """表示二维平面中的一个点""" def __init__(self,x,y): self.x = x self.y = y def distance(p1,p2): return ((p1.x-p2.x)**2 + (p1.y-p2.y)**2)**0.5 pp1 = point(1,2) pp2 = point(3,5) #函数式调用方法,一般不这么调用 #point.distance(pp1,pp2) #对象的方式调用 res = pp1.distance(pp2) print(res)