zoukankan      html  css  js  c++  java
  • Python中__init__的用法和理解

    在Python中定义类经常会用到__init__函数(方法),首先需要理解的是,两个下划线开头的函数是声明该属性为私有,不能在类的外部被使用或访问。而__init__函数(方法)支持带参数类的初始化,也可为声明该类的属性(类中的变量)。__init__函数(方法)的第一个参数必须为self,后续参数为自己定义。

    从文字理解比较困难,通过下面的例子能非常容易理解这个概念:

    例如我们定义一个Box类,有width, height, depth三个属性,以及计算体积的方法:

    #!/usr/bin/python
    # -*- coding utf-8 -*-
    #Created by Lu Zhan
    
    class Box:
    def setDimension(self, width, height, depth):
    self.width = width
    self.height = height
    self.depth = depth
    
    def getVolume(self):
    return self.width * self.height * self.depth
    
    b = Box()
    b.setDimension(10, 20, 30)
    print(b.getVolume())


    我们在Box类中定义了setDimension方法去设定该Box的属性,这样过于繁琐,而用__init__()这个特殊的方法就可以方便地自己对类的属性进行定义,__init__()方法又被称为构造器(constructor)。

    #!/usr/bin/python
    # -*- coding utf-8 -*-
    #Created by Lu Zhan
    
    class Box:
    #def setDimension(self, width, height, depth):
    # self.width = width
    # self.height = height
    # self.depth = depth
    def __init__(self, width, height, depth):
    self.width = width
    self.height = height
    self.depth = depth
    
    def getVolume(self):
    return self.width * self.height * self.depth
    
    b = Box(10, 20, 30)
    print(b.getVolume())


     
    ---------------------

    来源:https://blog.csdn.net/luzhan66/article/details/82822896

  • 相关阅读:
    深入了解Struts2返回JSON数据的原理及具体应用范例
    Struts国际化
    LeetCode Balanced Binary Tree
    LeetCode Triangle
    Binary Tree Level Order Traversal
    Pow(x,n)
    Symmetric Tree
    LeetCode Word Search
    LeetCode Insert Interval
    Maximum Depth of Binary Tree
  • 原文地址:https://www.cnblogs.com/liuyanhang/p/11139103.html
Copyright © 2011-2022 走看看