由买买提看人间百态

boards

本页内容为未名空间相应帖子的节选和存档,一周内的贴子最多显示50字,超过一周显示500字 访问原贴
Linux版 - 请教python问题
相关主题
what packages needed to init 5 X11slackware Linux 启动一问
INIT_WORK从Linux kernel 2.6.20后改了?unix下运行perl输出.txt文件
Intel Mobin 2 秒钟启动到 GUI请问mpirun怎么放在后台运行?
linux tcsh下less的问题kde is weak to display chinse fonts?
how do I remove this file???第一次用opensuse,很不错
dd-wrt 挂移动硬盘中文乱码的问题arch收拾好了...
problem: ao pulse init failed connection refusedflyspell 总 freeze 是咋回事啊?
请问Ubuntu下开机自动执行命令的设置?ask a quention
相关话题的讨论汇总
话题: super话题: __话题: reader话题: init话题: object
进入Linux版参与讨论
1 (共1页)
i***r
发帖数: 1035
1
class Reader(object):
def __init__(self,filename=None):
super(Reader, self).__init__()
最近研究大牛的code,这个地方甚是不解。
为什么要call super.__init__(), 在这里的 super class 只是object?
thanks
d********g
发帖数: 10550
2
这是override constructor,new style的class,super class就是object。没规定一
定要super,如果你不要基类的constructor的话。不光是__init__(),任何method都是
这个道理,要扩展(重用之前的代码)就是super,不super就是直接覆盖
因为object本身是不接收args、kwargs的所以可以这样简写,如果是从别的有可能接受
args的class继承,为了安全一般还得这样写:
class Reader(BaseClass):
def __init__(self, filename=None, *args, **kwargs):
super(Reader, self).__init__(*args, **kwargs)
# 然后再处理你自己的filename
Python 3里可以把super(Reader, self)简化成super()

【在 i***r 的大作中提到】
: class Reader(object):
: def __init__(self,filename=None):
: super(Reader, self).__init__()
: 最近研究大牛的code,这个地方甚是不解。
: 为什么要call super.__init__(), 在这里的 super class 只是object?
: thanks

i***r
发帖数: 1035
3
多谢详解,非常清楚。
这里的super只是base 的 object,call super是不是有点多此一举?
base object应该没有implement信息
d********g
发帖数: 10550
4
不算多此一举,有专门的讨论:
http://stackoverflow.com/questions/8611712/what-does-objects-in

【在 i***r 的大作中提到】
: 多谢详解,非常清楚。
: 这里的super只是base 的 object,call super是不是有点多此一举?
: base object应该没有implement信息

i***r
发帖数: 1035
5
class Reader(object):
def __init__(self,filename=None):
super(Reader, self).__init__()
最近研究大牛的code,这个地方甚是不解。
为什么要call super.__init__(), 在这里的 super class 只是object?
thanks
d********g
发帖数: 10550
6
这是override constructor,new style的class,super class就是object。没规定一
定要super,如果你不要基类的constructor的话。不光是__init__(),任何method都是
这个道理,要扩展(重用之前的代码)就是super,不super就是直接覆盖
因为object本身是不接收args、kwargs的所以可以这样简写,如果是从别的有可能接受
args的class继承,为了安全一般还得这样写:
class Reader(BaseClass):
def __init__(self, filename=None, *args, **kwargs):
super(Reader, self).__init__(*args, **kwargs)
# 然后再处理你自己的filename
Python 3里可以把super(Reader, self)简化成super()

【在 i***r 的大作中提到】
: class Reader(object):
: def __init__(self,filename=None):
: super(Reader, self).__init__()
: 最近研究大牛的code,这个地方甚是不解。
: 为什么要call super.__init__(), 在这里的 super class 只是object?
: thanks

i***r
发帖数: 1035
7
多谢详解,非常清楚。
这里的super只是base 的 object,call super是不是有点多此一举?
base object应该没有implement信息
d********g
发帖数: 10550
8
不算多此一举,有专门的讨论:
http://stackoverflow.com/questions/8611712/what-does-objects-in

【在 i***r 的大作中提到】
: 多谢详解,非常清楚。
: 这里的super只是base 的 object,call super是不是有点多此一举?
: base object应该没有implement信息

i***r
发帖数: 1035
9
多谢,正好是我要找的信息。

【在 d********g 的大作中提到】
: 不算多此一举,有专门的讨论:
: http://stackoverflow.com/questions/8611712/what-does-objects-in

1 (共1页)
进入Linux版参与讨论
相关主题
ask a quentionhow do I remove this file???
大家帮忙看看一个东西能否实现dd-wrt 挂移动硬盘中文乱码的问题
求几个linux命令problem: ao pulse init failed connection refused
贡献一个在 terminal 查 dict.cn 的 script请问Ubuntu下开机自动执行命令的设置?
what packages needed to init 5 X11slackware Linux 启动一问
INIT_WORK从Linux kernel 2.6.20后改了?unix下运行perl输出.txt文件
Intel Mobin 2 秒钟启动到 GUI请问mpirun怎么放在后台运行?
linux tcsh下less的问题kde is weak to display chinse fonts?
相关话题的讨论汇总
话题: super话题: __话题: reader话题: init话题: object