zoukankan      html  css  js  c++  java
  • 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.
    '''
  • 相关阅读:
    Flex随笔
    Flex中实现类似Javascript的confirm box
    正则表达式
    MySQL存储过程
    cvc-complex-type.2.4.a: Invalid content was found starting with element
    Spket在Eclipse/MyEclipse下的安装和配置(图文教程)
    关于安装linux时要怎么分区的考虑的參考方式?
    BZOJ 1975 SDOI2010 魔法猪学院 A*k短路
    使用scipy进行聚类
    Android 下拉刷新上拉载入效果功能
  • 原文地址:https://www.cnblogs.com/wanghao4023030/p/10887008.html
Copyright © 2011-2022 走看看