Python论坛  - 讨论区

标题:[python-chinese] 谁帮忙解释下变量名直接调用的古怪语法

2007年12月08日 星期六 19:00

shan jin jinshanhuster在gmail.com
星期六 十二月 8 19:00:57 HKT 2007

Ë­ÄܸøµãÌáʾ£º
def  instance(parameters):
      global  _instance
      try:
             _instance
      except:
             _instance = manager(parameters)
      return  _instance


ÆäÖÐtryÓï¾äÖеıäÁ¿Ãû_instanceµÄÖ±½Óµ÷ÓÃÊÇʲôÓ÷¨£¿
¸øµã×ÊÁÏÁ´½Ó»òÌáʾ¾ù¿É£¬Ð»ÁË£¡
-------------- 下一部分 --------------
Ò»¸öHTML¸½¼þ±»ÒƳý...
URL: http://python.cn/pipermail/python-chinese/attachments/20071208/0e8b2afb/attachment.html 

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

2007年12月08日 星期六 19:20

lukai lukai1984在gmail.com
星期六 十二月 8 19:20:11 HKT 2007

It's not a wired grammar.
In this function, first you declare a global variant _Instance, which
will trigger an exception when you use it without a value assigned to
it.

It's a very very simple singleton pattern.

Thanks.

On Sat, 2007-12-08 at 19:00 +0800, shan jin wrote:
> 中的变量名_instance的直


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

2007年12月08日 星期六 19:28

shan jin jinshanhuster在gmail.com
星期六 十二月 8 19:28:14 HKT 2007

Ë­ÄܸøµãÌáʾ£º
def  instance(parameters):
      global  _instance
      try:
             _instance
      except:
             _instance = manager(parameters)
      return  _instance


ÆäÖÐtryÓï¾äÖеıäÁ¿Ãû_instanceµÄÖ±½Óµ÷ÓÃÊÇʲôÓ÷¨£¿
¸øµã×ÊÁÏÁ´½Ó»òÌáʾ¾ù¿É£¬Ð»ÁË£¡
-------------- 下一部分 --------------
Ò»¸öHTML¸½¼þ±»ÒƳý...
URL: http://python.cn/pipermail/python-chinese/attachments/20071208/93f58151/attachment.html 

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

2007年12月08日 星期六 19:57

limodou limodou在gmail.com
星期六 十二月 8 19:57:17 HKT 2007

2007/12/8 shan jin <jinshanhuster在gmail.com>:
> 谁能给点提示:
> def  instance(parameters):
>       global  _instance
>       try:
>              _instance
>       except:
>              _instance = manager(parameters)
>       return  _instance
>
>
> 其中try语句中的变量名_instance的直接调用是什么用法?
> 给点资料链接或提示均可,谢了!
>
意思就是想判断是否已经存在_instance这个实量了,如果存在try不会有问题,如果不存在,则创建一个。

-- 
I like python!
UliPad <>: http://code.google.com/p/ulipad/
meide <>: http://code.google.com/p/meide/
My Blog: http://www.donews.net/limodou

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

2007年12月09日 星期日 09:23

shhgs shhgs.efhilt在gmail.com
星期日 十二月 9 09:23:49 HKT 2007

每一种语言都有判断表达式真假的标准。C是认为除了0之外,其他都是真的,shell认为除了0之外,其他都是假的。而Java则认为只有boolean值才能算真假,对其他类型的值判断真假属于语法错误。

Py的做法也不算很出格。基本上它认为,None,False,空的字符串,空的集合,以及0是假的,其他是真的。

我这里只是一个大致的介绍,具体Py的判断标准,请查看Py的language reference,不过我很怀疑是否有这个必要。

On Dec 8, 2007 6:57 AM, limodou <limodou在gmail.com> wrote:
> 2007/12/8 shan jin <jinshanhuster在gmail.com>:
>
> > 谁能给点提示:
> > def  instance(parameters):
> >       global  _instance
> >       try:
> >              _instance
> >       except:
> >              _instance = manager(parameters)
> >       return  _instance
> >
> >
> > 其中try语句中的变量名_instance的直接调用是什么用法?
> > 给点资料链接或提示均可,谢了!
> >
> 意思就是想判断是否已经存在_instance这个实量了,如果存在try不会有问题,如果不存在,则创建一个。
>
> --
> I like python!
> UliPad <>: http://code.google.com/p/ulipad/
> meide <>: http://code.google.com/p/meide/
> My Blog: http://www.donews.net/limodou
>
> _______________________________________________
> python-chinese
> Post: send python-chinese在lists.python.cn
> Subscribe: send subscribe to python-chinese-request在lists.python.cn
> Unsubscribe: send unsubscribe to  python-chinese-request在lists.python.cn
> Detail Info: http://python.cn/mailman/listinfo/python-chinese

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

2007年12月09日 星期日 09:39

limodou limodou在gmail.com
星期日 十二月 9 09:39:36 HKT 2007

2007/12/9 shhgs <shhgs.efhilt在gmail.com>:
> 每一种语言都有判断表达式真假的标准。C是认为除了0之外,其他都是真的,shell认为除了0之外,其他都是假的。而Java则认为只有boolean值才能算真假,对其他类型的值判断真假属于语法错误。
>
> Py的做法也不算很出格。基本上它认为,None,False,空的字符串,空的集合,以及0是假的,其他是真的。
>
> 我这里只是一个大致的介绍,具体Py的判断标准,请查看Py的language reference,不过我很怀疑是否有这个必要。
>
我已经非常习惯这种真假值的判断,更符合日常的习惯理解。

-- 
I like python!
UliPad <>: http://code.google.com/p/ulipad/
meide <>: http://code.google.com/p/meide/
My Blog: http://www.donews.net/limodou

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

2007年12月09日 星期日 10:12

lukai lukai1984在gmail.com
星期日 十二月 9 10:12:02 HKT 2007

...
Not true or false, it's exception...


ÔÚ07-12-9£¬shhgs <shhgs.efhilt在gmail.com> дµÀ£º
>
>
> ÿһÖÖÓïÑÔ¶¼ÓÐÅжϱí´ïʽÕæ¼ÙµÄ±ê×¼¡£CÊÇÈÏΪ³ýÁË0Ö®Í⣬ÆäËû¶¼ÊÇÕæµÄ£¬shellÈÏΪ³ýÁË0Ö®Í⣬ÆäËû¶¼ÊǼٵġ£¶øJavaÔòÈÏΪֻÓÐbooleanÖµ²ÅÄÜËãÕæ¼Ù£¬¶ÔÆäËûÀàÐ͵ÄÖµÅжÏÕæ¼ÙÊôÓÚÓï·¨´íÎó¡£
>
> PyµÄ×ö·¨Ò²²»ËãºÜ³ö¸ñ¡£»ù±¾ÉÏËüÈÏΪ£¬None£¬False£¬¿ÕµÄ×Ö·û´®£¬¿ÕµÄ¼¯ºÏ£¬ÒÔ¼°0ÊǼٵģ¬ÆäËûÊÇÕæµÄ¡£
>
> ÎÒÕâÀïÖ»ÊÇÒ»¸ö´óÖµĽéÉÜ£¬¾ßÌåPyµÄÅжϱê×¼£¬Çë²é¿´PyµÄlanguage reference£¬²»¹ýÎҺܻ³ÒÉÊÇ·ñÓÐÕâ¸ö±ØÒª¡£
>
> On Dec 8, 2007 6:57 AM, limodou <limodou在gmail.com> wrote:
> > 2007/12/8 shan jin <jinshanhuster在gmail.com>:
> >
> > > Ë­ÄܸøµãÌáʾ£º
> > > def  instance(parameters):
> > >       global  _instance
> > >       try:
> > >              _instance
> > >       except:
> > >              _instance = manager(parameters)
> > >       return  _instance
> > >
> > >
> > > ÆäÖÐtryÓï¾äÖеıäÁ¿Ãû_instanceµÄÖ±½Óµ÷ÓÃÊÇʲôÓ÷¨£¿
> > > ¸øµã×ÊÁÏÁ´½Ó»òÌáʾ¾ù¿É£¬Ð»ÁË£¡
> > >
> > Òâ˼¾ÍÊÇÏëÅжÏÊÇ·ñÒѾ­´æÔÚ_instanceÕâ¸öʵÁ¿ÁË£¬Èç¹û´æÔÚtry²»»áÓÐÎÊÌ⣬Èç¹û²»´æÔÚ£¬Ôò´´½¨Ò»¸ö¡£
> >
> > --
> > I like python!
> > UliPad <>: http://code.google.com/p/ulipad/
> > meide <>: http://code.google.com/p/meide/
> > My Blog: http://www.donews.net/limodou
> >
> > _______________________________________________
> > python-chinese
> > Post: send python-chinese在lists.python.cn
> > Subscribe: send subscribe to python-chinese-request在lists.python.cn
> > Unsubscribe: send unsubscribe to  python-chinese-request在lists.python.cn
> > Detail Info: http://python.cn/mailman/listinfo/python-chinese
> _______________________________________________
> python-chinese
> Post: send python-chinese在lists.python.cn
> Subscribe: send subscribe to python-chinese-request在lists.python.cn
> Unsubscribe: send unsubscribe to  python-chinese-request在lists.python.cn
> Detail Info: http://python.cn/mailman/listinfo/python-chinese
-------------- 下一部分 --------------
Ò»¸öHTML¸½¼þ±»ÒƳý...
URL: http://python.cn/pipermail/python-chinese/attachments/20071209/c4a77fd5/attachment.htm 

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

2007年12月09日 星期日 11:26

Xie Yanbo xieyanbo在gmail.com
星期日 十二月 9 11:26:17 HKT 2007

On Dec 9, 2007 9:23 AM, shhgs <shhgs.efhilt在gmail.com> wrote:
> 每一种语言都有判断表达式真假的标准。C是认为除了0之外,其他都是真的,shell认为除了0之外,其他都是假的。而Java则认为只有boolean值才能算真假,对其他类型的值判断真假属于语法错误。
>
> Py的做法也不算很出格。基本上它认为,None,False,空的字符串,空的集合,以及0是假的,其他是真的。

另外,如果A是一个自定义类,且A包含__len__方法,那么若它的实例a满足len(a)==0,
则python也会认为a是假的。这时 if a: 相当于 if len(a):。好像__nozero__方法也有类似的
效果,不过我没有实际用过。

>
> 我这里只是一个大致的介绍,具体Py的判断标准,请查看Py的language reference,不过我很怀疑是否有这个必要。

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

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

    你的回复:

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

    Zeuux © 2024

    京ICP备05028076号