【Python】创建和使用类

面向对象编程是最有效的软件编写方法之一

创建Dog类

class Dog():
    '''一次模拟小狗的简单测试'''

    def __init__(self,name,age):
        self.name = name
        self.age = age

    def sit(self):
        '''模拟小狗被命令下蹲'''
        print(self.name.title() + "is now sitting.")

    def roll_over(self):
        '''模拟小狗被命令打滚'''
        print(self.name.title() + "rolled over!")

1.在这里我们定义了一个Dog类,在Python中,首字母大写的名称指的是类

2.方法__init__()是一个特殊的方法,每当你根据Dog类创建新实例时,Python会自动运行它,在这个方法中,开头和结尾有两个下划线,这是一种约定,旨在避免Python默认方法与普通方法发生冲突,在此方法中又是那个形参,参数self必不可少,还必须位于其他形参的前面,Python调用这个方法来创建Dog实例时,将自动传入实参self,每个与类相关联的方法调用都自动传递实参self,它是一个指向实例本身的引用,让实例能够访问类中的属性和方法。self会自动传递,只需要传入后面两个形参(name和age)

3.self.name,以self为前缀的变量都可提供类中的所有方法使用,我们可以通过类的任何实例来访问这些变量,self.name = name 获取存储在形参name中的值,并将其存储到变量name中,然后该变量被关联到当前创建的实例。像这种可以通过实例访问的变量称为属性。

根据类创建实例

my_dog = Dog('Lucy',3)

print("My dog's name is " + my_dog.name +".")
print("My dog is " + str(my_dog.age) +" years old.")

我们通常可以认为手写字母大写的指的是类,小写的名称指的是类创建的实例

1.调用方法

my_dog = Dog('Lucy',3)
my_dog.sit()
my_dog.roll_over()

print("My dog's name is " + my_dog.name +".")
print("My dog is " + str(my_dog.age) +" years old.")

2.创建多个实例

my_dog = Dog('Lucy',3)
your_dog =Dog('Michile',4)


print("My dog's name is " + my_dog.name +".")
print("My dog is " + str(my_dog.age) +" years old.")
my_dog.sit()

print("your dog's name is " + your_dog.name +".")
print("your dog is " + str(your_dog.age) +" years old.")
your_dog.sit()
在这个实例中,我们创建了2条小狗,他们分别名为Lucy跟Michile.每条小狗都是一个独立的实例,拥有自己的属性。
posted @ 2017-11-15 22:45  OLIVER_QIN  阅读(19541)  评论(0编辑  收藏  举报