zoukankan      html  css  js  c++  java
  • Python类demo详解

    Dog类,赋予每条小狗蹲下(sit())和打滚(roll_over())的能力

    dog.py源码:

    class Dog():
      """一次模拟小狗的简单尝试"""

      def __init__(self, name, age):   """注意这里一共是4个_"""
        """初始化属性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!")

    Dog类名:在python中,首字母大写的名称指的是类;这个类定义中的括号是空的,因为我们要从空白创建这个类。

    """一次模拟小狗的简单尝试""":文档字符串,对这个类的功能作了描述。

    1、方法_init_()

      类中的函数都成为方法;前面学习的函数的一切都使用于方法。

      _init_()是一个特殊的方法,没当你根据Dog类创建新实例时,Python都会自动运行它。在这个方法的名称中。开头和末尾有两个下划线,这是一种约定,旨在避免python默认方法与普通方法冲突。

      我们将方法_init_定义成了包含三个参数:self、name和age。在这个方法的定义中,形参self必不可少,还必须位于其他形参的前面。因为Python调用这个_init_方法来创建Dog实例时,将自动传入实参self。每个与类相关联的方法调用都自动传递实参self,每个与类相关联的方法调用都自动传递实参self。它是一个指向实例本身的引用,让实例能够访问类中的属性和方法。

      我们创建Dog实例时,Python将调用Dog类的方法_init_()。我们将通过实参向Dog()传递名字和年龄;self会自动传递,因此我们不需要传递它。每当我们根据Dog类创建实例时,都只需给最后两个形参(name和age)提供值。

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

      Dog还定义了另外两个方法sit()和roll_over()。由于这些方法不需要额外的信息,如名字或年龄,因此他们只有一个形参self。我们后边将创建的实例能够访问这些方法,换句话说,它们都会蹲下和打滚。

    在同一个文件中执行如下代码即创建了一个实例。

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

    my_dog.sit()
    my_dog.roll_over()

    输出结果:

    上述例子中用到了双引号,单引号和3个双引号。双引号(" 字符串 ")和单引号( '字符串' )都用来表示一个字符串,无区别。三个双引号( """注释""" )用来表示注释。

    他们区别参考链接:https://blog.csdn.net/woainishifu/article/details/76105667

    ===================注意事项==========================

    1、类中的每个属性都必须又初始值,哪怕这个值是0或空字符串。

    在某些情况下,如设置默认值时,在方法__init__内指定这种初始值是可行的;

    如果你对某个属性这样做了,就无需包含为它提供初始值的形参。

    eg: def __init__ (self, make)

        self.make = make

        self.model = model

  • 相关阅读:
    Job for apache2.service failed because the control process exited with error code. See "systemctl status apache2.service" and "journalctl -xe" for details.
    Jsonpath的基本使用
    [转]什么是CNN、RNN、LSTM
    [转]爬虫 selenium + phantomjs / chrome
    [转]js async await 终极异步解决方案
    [转]如何让多个不同类型的后端网站用一个nginx进行反向代理实际场景分析
    [转]java常用正则表达式
    [转]关于SSH与SSM的组成及其区别
    用live2d给自己的博客园加个小卡通,可以固定model也可以随机设置
    [转]关于/r与/n 以及 /r/n 的区别总结
  • 原文地址:https://www.cnblogs.com/ruigelwang/p/13946250.html
Copyright © 2011-2022 走看看