我是靠谱客的博主 受伤指甲油,最近开发中收集的这篇文章主要介绍Python: 类中为什么要定义__init__()方法,觉得挺不错的,现在分享给大家,希望可以做个参考。

概述

学习并转自:https://blog.csdn.net/geerniya/article/details/77487941

 

1. 不用init()方法定义类

定义一个矩形的类,目的是求周长和面积。

class Rectangle():
    def getPeri(self,a,b):
        return (a + b)*2
    def getArea(self,a,b):
        return a*b

rect = Rectangle()
print(rect.getPeri(3,4))
print(rect.getArea(3,4))
print(rect.__dict__)

得到结果:

14
12

{}

 

 从上例中可以看到,我们在类中并没有定义init()方法,但是也能够得到类似的要求,结果返回了矩形实例rect的周长及面积。
但是,我们通过print(rect.dict)来看这个实例的属性,竟然是空的,我定义了一个矩形,按理来说它的属性应该是它的长、宽。但是它竟然没有。这就是没有定义init()的原因了。
并且,在实例化对象的时候,rect = Rectangle()参数为空,没有指定a、b的值,只有在调用函数的时候才指定了。且类中定义的每个方法的参数都有a、b,这显然浪费感情,在类中直接指定方法就可以了。、

因此吧,需要在类中定义init()方法,方便创建实例的时候,需要给实例绑定上属性,也方便类中的方法(函数)的定义。

2、用init()方法定义类
上述同样的例子,采用init()方法定义类,如下:

class Rectangle():
    def __init__(self,a,b):
        self.a = a
        self.b = b
    def getPeri(self):
        return (self.a + self.b)*2
    def getArea(self):
        return self.a * self.b

rect = Rectangle(3,4)
print(rect.getPeri())
print(rect.getArea())
print(rect.__dict__)

out
14
12
{'a': 3, 'b': 4}

 定义完init()后,创建的每个实例都有自己的属性,也方便直接调用类中的函数。

转载于:https://www.cnblogs.com/baxianhua/p/9996676.html

最后

以上就是受伤指甲油为你收集整理的Python: 类中为什么要定义__init__()方法的全部内容,希望文章能够帮你解决Python: 类中为什么要定义__init__()方法所遇到的程序开发问题。

如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。

本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
点赞(65)

评论列表共有 0 条评论

立即
投稿
返回
顶部