Python 学习笔记13 类 - 创建和简单使用

介绍:

面向对象编程是一种非常有效的软件编写方法之一,在面向对象编程中,我们会编写表示现实世界中的事物或者情景的类,并基于类来创建对象。

在编写类的的时候,这些类对象一般都有通用的行为或者属性。基于类创建对象时,每个对象都自动具备这些属性和行为,然后给予需要给与这些对象一些特殊的属性或者行为。

我们几乎可以使用面向对象的方式来模拟现实生活中的所有情景。

根据类来创建队形被称为实例化,这让你能够使用类的实例。

创建类:

我们使用一个例子来说明怎么创建一个类。

我们假设创建一个名叫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的约定中,我们一般用首字母大写来表示类。

在定义好类的名字后,我们看到Python使用__init__来初始化类对象,就像一个构造函数一样。我们可以在这个函数方法中来初始化和定义我们需要的一些变量(属性),比如表示自身的self,表示名字的name,表示年龄的age。这些属性一旦定义好后,可以在类的方法中使用。当类被实例化成对象后,对象自动拥有这些属性。

这个类还被定义了一些方法,比如run,sit和bark,在这些方法中我们也可以看到,他可以自动的调用name,age等参数,因为他们已经是类的属性。

 

使用类:

根据类,我们可以创建和实例化一个对象。我们可以把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.")



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.
'''

 

posted @ 2019-05-18 21:57  追风狂想  阅读(296)  评论(0编辑  收藏  举报