python中一切皆为对象,一个对象的特征也称为属性。它所具有的行为也称为方法(对象=属性+方法)。

python中具有相同属性和方法的对象归为一个类,且类是对象的模板或蓝图,类是对象的抽象化,对象是累的实例化。类不代表具体事物,而对象表示具体的事物,而在编程中实际是变量和函数

定义一个people类,定义一个speak方法,但没有定义属性,
因为属性不属于类,而是属于各个类的实例。也就是说属于对象。
因此我们可以给每个实例设置不同的属性    
>>> class people:          #类    
...def speak(self):         #方法               
...  print("hello!")               
...
>>>

Jack =people()#创建Jack实例

self只有在类的方法中才会有,独立的函数或方法是不必带有self的。self在定义类的方法时是必须有的,虽然在调用时不必传入相应的参数。self名称不是必须的,在python中self不是关键词,你可以定义成a或b或其它名字都可以,但使用静态方法的好处:其函数不需要self参数,可以通过类调用该方法,不需要定义该类实例

面向对象的几个特征(封装性、继承性、多态性)

  • 封装性:对外部隐藏工作的细节

  • 继承性:子类自动共享父类之间数据和方法的机制

  • 多态性:可以对不同类的对象调用相同的方法,产生不同的结果    

初始化对象

创建类时,可以定义一个特定的方法,名为__init__(),只要创建这个类的一个实例

就会运行这个方法。可以向__init__()方法传递参数,

这样创建对象时就可以把属性设置为你希望的值

__init__()这个方法会在创建对象时完成初始化,