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

  • 相关阅读:
    Java for LeetCode 229 Majority Element II
    Java for LeetCode 228 Summary Ranges
    Java for LeetCode 227 Basic Calculator II
    Java for LintCode 颜色分类
    Java for LintCode 链表插入排序
    Java for LintCode 颠倒整数
    Java for LintCode 验证二叉查找树
    Java for LeetCode 226 Invert Binary Tree
    Java for LeetCode 225 Implement Stack using Queues
    Java for LeetCode 224 Basic Calculator
  • 原文地址:https://www.cnblogs.com/liuyanhang/p/11139103.html
Copyright © 2011-2022 走看看