Personal tools

みんなが言及しないPython 3.0のステキ機能

by ats posted at 2008-12-05 10:08 last modified 2008-12-05 16:19
Python 3.0 (r30:67503, Dec  5 2008, 09:49:50) 
[GCC 4.0.1 (Apple Inc. build 5484)] on darwin
Type "help", "copyright", "credits" or "license" for more information.
>>> l=['にんとも', 'かんとも', 'ニンニン']
>>> l
['にんとも', 'かんとも', 'ニンニン']
普通に見えます? じゃあ2.5とかでこれと同じことやってみれ。
Python 2.5.2 (r252:60911, Feb 22 2008, 07:57:53) 
[GCC 4.0.1 (Apple Computer, Inc. build 5363)] on darwin
Type "help", "copyright", "credits" or "license" for more information.
>>> l=[u'にんとも', u'かんとも', u'ニンニン']
>>> l
[u'\u306b\u3093\u3068\u3082', u'\u304b\u3093\u3068\u3082', u'\u30cb\u30f3\u30cb\u30f3']
c.f.
http://www.python.org/dev/peps/pep-3138/
Category(s)
python
The URL to Trackback this entry is:
http://coreblog.org/ats/finest-new-neature-of-python-30/tbping

Re:みんなが言及しないPython 3.0のステキ機能

Posted by NoboNobo at 2008-12-05 12:03
なんと、変数名に漢字が使えますよ!

>>> 漢字=123
>>> print(漢字)
123

Re:みんなが言及しないPython 3.0のステキ機能

Posted by ats at 2008-12-05 12:25
>NoboNoboさん
わはは,こりゃ傑作だ:-)。

>>> class 動物:
>>>   鳴き声 = '・・・'
>>>   def 鳴く(自分):
>>>     print('%s:%s' % (自分.__class__.__name__, 自分.鳴き声))
>>>
>>> class 猫(動物):
>>>   鳴き声 = 'にゃー'
>>>
>>> class 熊(動物):
>>>   鳴き声 = 'クマー'
>>>
>>> 君のペット = 猫()
>>> 君のペット.鳴く()
猫:にゃー
>>> 僕のペット = 熊()
>>> 僕のペット.鳴く()
熊:クマー

Re:みんなが言及しないPython 3.0のステキ機能

Posted by tanopy at 2008-12-05 18:12
>>> 五 = 2
>>> 五
2
これはOKなのはいいのですが、(結構感動ですが)

>>> 5 = 2
File "", line 1
5 = 2
^
SyntaxError: invalid character in identifier

と、怒られます。

>>> 5 = 2
File "", line 1
SyntaxError: can't assign to literal

これとも、エラーメッセージが少し違う感じなんですよねー。
いろいろやってみると、変数名として使えない1バイト文字との対応を見ているように感じるのですが、はっきりとは分かりません。

Re:みんなが言及しないPython 3.0のステキ機能

Posted by Anonymous User at 2008-12-06 09:30
unicode文字にはカテゴリが定義されているので、それを見て変数名に使えるか調べていると思います。
http://unicode.org/Public/UNIDATA/UCD.html#General_Category_Values

Re:みんなが言及しないPython 3.0のステキ機能

Posted by ats at 2008-12-08 12:53
ごめんなさい,誤解を与えてしまったら申し訳ないので一言だけ。
Python 3.0になってもPEP 8は生きているので,クラス名に「動物」はありえないです(笑)。
Add comment

You can add a comment by filling out the form below. Plain text formatting.

(Required)
(Required)
(Required)
(Required)
コメントスパム避けのための認証文字列です

Captcha Image

About this blog
■Author
atsこと柴田淳です。この記事を読んでいただくと,技術者としての人となりを分かってもらえるかも。
Webcore株式会社 代表取締役
Plone上で動く,オープンソースのBlog Product - COREBlog2を使って運用しています。

 
最近書いた本,Mook
みんなのPython 改訂版
Python使いはもちろん,プログラミングの初心者から,他言語からの移行組までご好評いただいているPythonの定番入門書の第2版です。Python 3.0を含む最新の情報について加筆を行い,より読みやすいように構成を大幅に見直しました。第一版をお持ちの方にもお役立ていただける内容になっています。
みんなのPython Webアプリ編
Pythonの基礎から,Webアプリやフレームワークの仕組みまで,つまることなく一気に学べる書籍です。「みんなのPython」と一緒に読んでください:-)。
 

Powered by Plone, the Open Source Content Management System