小编Tim*_*ten的帖子

为什么"class"没有开始像"def"这样的新范围呢?

我不完全确定这是否适用于stackoverflow,所以请纠正我,如果没有.

即说我们有内容的t.py:

class A(object):
    pass
print("A:", A)

class B(object):
    print("From B: A:", A)


class OuterClass(object):
    class AA(object):
        pass
    print("AA:", AA)

    class BB(object):
        print("From BB: AA:", AA)
Run Code Online (Sandbox Code Playgroud)

现在我们执行它: $ python3 t.py

A: <class '__main__.A'>
From B: A: <class '__main__.A'>
AA: <class '__main__.AA'>
From BB: AA:
Traceback (most recent call last):
  File "t.py", line 9, in <module>
    class OuterClass(object):
  File "t.py", line 14, in OuterClass
    class BB(object):
  File "t.py", line 15, in BB
    print "From BB: AA:", AA
NameError: name 'AA' is …
Run Code Online (Sandbox Code Playgroud)

python

16
推荐指数
1
解决办法
341
查看次数

如何在python中显示没有秒的区域设置敏感时间格式

我可以使用输出区域敏感时间格式strftime('%X'),但这总是包括秒.如何在没有秒的情况下显示此时间格式?

>>> import locale
>>> import datetime
>>> locale.setlocale(locale.LC_ALL, 'en_IE.utf-8')
'en_IE.utf-8'
>>> print datetime.datetime.now().strftime('%X')
12:22:43
>>> locale.setlocale(locale.LC_ALL, 'zh_TW.utf-8')
'zh_TW.utf-8'
>>> print datetime.datetime.now().strftime('%X')
12?22?58?
Run Code Online (Sandbox Code Playgroud)

我能想到这样做的唯一方法是尝试解析输出locale.nl_langinfo(locale.T_FMT)并删除秒位,但这带来了它自己的诡计.

>>> print locale.nl_langinfo(locale.T_FMT)
%H?%M?%S?
>>> locale.setlocale(locale.LC_ALL, 'en_IE.utf-8')
'en_IE.utf-8'
>>> print locale.nl_langinfo(locale.T_FMT)
%T
Run Code Online (Sandbox Code Playgroud)

解:

(根据pixelbeat的回答.)

# -*- coding: utf-8 -*-
import locale
def locale_time(t, show_seconds=False):
    if show_seconds:
        return t.strftime('%X')
    replacement_fmts = [
        (u'.%S', u''),
        (u':%S', u''),
        (u',%S', u''),
        (u':%OS', ''),
        (u'?????%S', u''),
        (u' %S?', u''),
        (u'%S?', u''),
        (u'%r', '%I:%M %p'),
        (u'%t', '%H:%M'),
        (u'%T', …
Run Code Online (Sandbox Code Playgroud)

python format time locale

12
推荐指数
1
解决办法
2052
查看次数

标签 统计

python ×2

format ×1

locale ×1

time ×1