ICode9

精准搜索请尝试: 精确搜索
首页 > 编程语言> 文章详细

python构造函数

2022-06-26 10:01:47  阅读:152  来源: 互联网

标签:__ 调用 python init year 父类 方法 构造函数


一个class只能有一个用于构造对象的__init__函数

但python中的变量是无类型的,因此传给__init__的参数可以是任何类

python中的函数参数在定义时可以有默认值,可以让__init__函数接受多个参数,在后面的一些参数给出默认值的方法让__init__接受不同个数的参数,并且执行类型检查执行不同的代码,用上述方法实现类的构造函数的多态性

代码如下:

 1 import time
 2 
 3 
 4 class Date:
 5     # 主构造函数
 6     def __init__(self, year, month, day):
 7         self.year = year
 8         self.month = month
 9         self.day = day
10 
11     # 可选构造函数
12     @classmethod
13     def today(cls):
14         t = time.localtime()
15         return cls(t.tm_year, t.tm_mon, t.tm_mday)
16 
17 
18 if __name__ == '__main__':
19     a = Date(2002, 6, 1)
20     print(a.year, a.month, a.day)
21     b = Date.today()
22     print(b.year, b.month)

 

在继承中,如果子类没有重写父类的方法,当调用该方法的时候,会调用父类的方法,当子类重写了父类的方法,默认是调用自身的方法。

另外,如果子类Son重写了父类Father的方法,如果想调用父类的方法,可以利用super()

如果父类的方法是私有方法,如 def __action(self)  这样的话再去调用就提示没有这个方法,其实编译器是把这个方法的名字改成了 _Father__action()

如果自己也定义了 __init__ 方法,那么父类的属性是不能直接调用的,需要在子类的 __init__中调用一下父类的 __init__ 方法,这样就可以调用了

标签:__,调用,python,init,year,父类,方法,构造函数
来源: https://www.cnblogs.com/ang0/p/16413014.html

本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享;
2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关;
3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关;
4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除;
5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。

专注分享技术,共同学习,共同进步。侵权联系[81616952@qq.com]

Copyright (C)ICode9.com, All Rights Reserved.

ICode9版权所有