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.
    '''
  • 相关阅读:
    终端操作各插件安装配置
    浅谈CSRF攻击方式
    教你突破基于HTTP_REFERER的防盗链的方法
    HTTP Referer简介
    如何利用百度蜘蛛referer找到报错页面入口?
    Flex 布局教程:语法
    HTTP 状态码
    RESTful API 设计最佳实践
    Javascript原型和原型链
    JS判断是什么设备是什么浏览器-主要用移动页面开发
  • 原文地址:https://www.cnblogs.com/wanghao4023030/p/10887008.html
Copyright © 2011-2022 走看看