Python论坛  - 讨论区

标题:Re: Re: [python-chinese] pass语句的问� =E2?=

2005年11月09日 星期三 10:21

Zoom Quiet zoom.quiet at gmail.com
Wed Nov 9 10:21:40 HKT 2005

呜乎哀哉!
看错了!!
你这么一讲俺也不明白了…………
嘿嘿嘿!原文处没有说明的?
在 05-11-9,xzsunmail<xzsunmail-qq at yahoo.com.cn> 写道:
> 这个程序片断是完整的了。并且能够运行,我主要是不明白,
> Time对象明明什么都没有,然后却可以传递参数给他的成员。
>
> --- Zoom Quiet <zoom.quiet at gmail.com>写道:
>
> > 在 05-11-9,xzsunmail<xzsunmail-qq at yahoo.com.cn>
> > 写道:
> > >
> > 最近看教程,发现了pass语句。有些不太明白。求教各位。
> > >
> > > 程序入下:
> > > --------------
> > > class Time:
> > >     pass
> > > def printTime(time):
> > >     print str(time.hours) + ':' +
> > str(time.minutes) +
> > > ':' + \
> > >     str(time.seconds)
> > >
> > > now = Time()
> > > now.hours = 10
> > > now.minutes = 30
> > > now.seconds = 10
> > > printTime(now)
> > > ---------------
> > >
> >
> Time对象没有一个参数,可now实例却能够赋值,并且打印出来入下结果:10:30:10
> > >
> > > 查了帮助文件,对于pass语句解释我看不明白。
> > > 那位大侠能够解析详细些?
> > >
> > > 小弟先行谢过!
> > >
> > >
> > 这跟pass 没有关系的哪!
> > 是基本的对象函式定义的外部格式,很象JS
> > 中的追加操作,
> > 这种写法等同于:
> > class Time:
> >    pass
> >    def printTime(self):
> >       print str(time.hours) + ':' +
> > str(time.minutes) +':' + \
> >       str(time.seconds)
> >
> > 是也乎!
> > 不过,考虑到有 time
> > 内置模块,这么写可能是为了直接使用 time 的操作?
> > 没有上下文,只能这么猜了…………
> > --
> > # Time is unimportant, only life important!
> > ## 面朝开源,我心自由!
> >
>
>
>
>
>
>
>
> ___________________________________________________________
> 雅虎免费G邮箱-中国第一绝无垃圾邮件骚扰超大邮箱
> http://cn.mail.yahoo.com
>
>


--
# Time is unimportant, only life important!
## 面朝开源,我心自由!

[导入自Mailman归档:http://www.zeuux.org/pipermail/zeuux-python]

2005年11月09日 星期三 11:20

limodou limodou at gmail.com
Wed Nov 9 11:20:55 HKT 2005

> --------------
> class Time:
>     pass
> def printTime(time):
>     print str(time.hours) + ':' +
> str(time.minutes) +
> ':' + \
>     str(time.seconds)
>
> now = Time()
> now.hours = 10
> now.minutes = 30
> now.seconds = 10
> printTime(now)
> ---------------
>
>
> Time对象没有一个参数,可now实例却能够赋值,并且打印出来入下结果:10:30:10

代码很清楚。pass是一个空语句,为什么它有用呢?比如上面的代码目的是先生成一个空类,这个类主要是希望创建实例后,用它来保存一些属性。因此,类没有任何内容不下,但在python中,你只写:

class Time:

这样是会抱错的,后面必须还有语句才行。因此这里就可以使用pass语句。
> now = Time()
> now.hours = 10
> now.minutes = 30
> now.seconds = 10
这就是python的动态,一个实例可以动态增加新的属性。

因此在打印时,对象的属性就已经存在了。因此不会报错。千万不要把java, C++的概念在python中应用,要记住:

在执行的时刻的对象才是真正的对象,它不一样是定义的那个样子。

--
I like python!
My Blog: http://www.donews.net/limodou
NewEdit Maillist: http://groups.google.com/group/NewEdit

[导入自Mailman归档:http://www.zeuux.org/pipermail/zeuux-python]

如下红色区域有误,请重新填写。

    你的回复:

    请 登录 后回复。还没有在Zeuux哲思注册吗?现在 注册 !

    Zeuux © 2025

    京ICP备05028076号