面向对象编程是一种很是有效的软件编写方法之一,在面向对象编程中,咱们会编写表示现实世界中的事物或者情景的类,并基于类来建立对象。python
在编写类的的时候,这些类对象通常都有通用的行为或者属性。基于类建立对象时,每一个对象都自动具有这些属性和行为,而后给予须要给与这些对象一些特殊的属性或者行为。编程
咱们几乎可使用面向对象的方式来模拟现实生活中的全部情景。函数
根据类来建立队形被称为实例化,这让你可以使用类的实例。spa
咱们使用一个例子来讲明怎么建立一个类。code
咱们假设建立一个名叫dog的类,咱们知道狗狗通常会跑,叫,有些还会坐下,这些都是这个类的一些行为,咱们也能够定义它的一些属性,好比名字和年龄。咱们能够再代码中这样来实现这个类:对象
class Dog(): def __init__(self, name, age): self.name = name self.age = age def sit(self): print(self.name + " is sitting.") def run(self): print(self.name + " is running.") def bark(self): print(self.name + " is barking.")
在上面代码中咱们能够看到,咱们定义可一个dog类,在python的约定中,咱们通常用首字母大写来表示类。blog
在定义好类的名字后,咱们看到Python使用__init__来初始化类对象,就像一个构造函数同样。咱们能够在这个函数方法中来初始化和定义咱们须要的一些变量(属性),好比表示自身的self,表示名字的name,表示年龄的age。这些属性一旦定义好后,能够在类的方法中使用。当类被实例化成对象后,对象自动拥有这些属性。it
这个类还被定义了一些方法,好比run,sit和bark,在这些方法中咱们也能够看到,他能够自动的调用name,age等参数,由于他们已是类的属性。面向对象编程
根据类,咱们能够建立和实例化一个对象。咱们能够把dog类看作是一个对象的说明,而实例化的过程,实际就是根听说明建立一个对象的过程。class
class Dog(): def __init__(self, name, age): self.name = name self.age = age def sit(self): print(self.name + " is sitting.") def run(self): print(self.name + " is running.") def bark(self): print(self.name + " is barking.") my_dog = Dog('WanCai', 5 )
咱们能够看到,咱们使用code:my_dog = Dog('WanCai', 5 ) 来实例化了一个叫wancai, 6岁的名叫my-dog的对象。
一旦实例化了一个对象,咱们就能够调用这个对象的属性和方法:
my_dog = Dog('WanCai', 5 ) print(type(my_dog)) print("name is : " + my_dog.name) print("age is : " + str(my_dog.age)) my_dog.sit() my_dog.run() my_dog.bark() ''' 输出: <class '__main__.Dog'> name is : WanCai age is : 5 WanCai is sitting. WanCai is running. WanCai is barking. '''
一旦咱们定义好了类,咱们能够根据实际的须要来建立多个实例:
my_dog = Dog('WangCai', 5 ) print(type(my_dog)) print("name is : " + my_dog.name) print("age is : " + str(my_dog.age)) my_dog.sit() my_dog.run() my_dog.bark() rachel_dog = Dog('LaiFu', 5 ) print(type(rachel_dog)) print("name is : " + rachel_dog.name) print("age is : " + str(rachel_dog.age)) rachel_dog.sit() rachel_dog.run() rachel_dog.bark() ''' 输出: <class '__main__.Dog'> name is : WangCai age is : 5 WangCai is sitting. WangCai is running. WangCai is barking. <class '__main__.Dog'> name is : LaiFu age is : 5 LaiFu is sitting. LaiFu is running. LaiFu is barking. '''