# 非常明显的处理一类事物,这些事物都具有相似的属性和功能
# 当有几个函数需要反反复复传入相同的参数的时候就可以考虑面向对象
# 这些参数的对象都是属性
如何定义类?
class 类名:
函数:方法(动态属性) #类中可以定义方法,方法都有一个必须传的参数self
变量:类属性(静态属性) #类中可以定义静态属性
__init__方法:
python帮我们创建了一个对象self,每次调用类的时候就会自动触发这个方法,默认传self,在init方法里面可以对self进行赋值
self是什么?
self拥有属性都属于对象,在类内部,self就是对象
如下面程序为例, xm.chop_wood() 就等于 Training.chop_wood(xm)
class Training(): def __init__(self,name,age,sex): self.name = name self.age = age self.sex = sex def chop_wood(self): print('{},{}岁,{},上山去砍柴'.format(self.name,self.age,self.sex)) def climb(self): print('{},{}岁,{},上山去砍柴'.format(self.name,self.age,self.sex)) def training(self): print('{},{}岁,{},最爱大保健'.format(self.name,self.age,self.sex)) xm = Training('小明',10,'男') xm.chop_wood() xm.climb() xm.training() hxx = Training('小六',22,'男') hxx.climb() hxx.chop_wood() hxx.training()
计算圆的周长与面积:
from math import pi class Perimeter_And_Area: def __init__(self,radius): self.radius = radius def perimeter(self): print('圆的周长为:',2*pi*self.radius) def area(self): print('圆的面积为:',self.radius**2*pi) circle = Perimeter_And_Area(6) circle.perimeter() circle.area()
实例化:
对象 = 类(参数是init方法的)
实例与对象:
没有区别
对象查看属性:
对象.属性名
对象调用方法:
对象.方法名(参数) #类名.方法名(对象名,参数)