或阿呆のブログ

Pythonを好んで使っているプログラマです。Ruby,Perl,PowerShell,VBAなどでもたまに書いています。最近はスロット放浪記やってます。。

Python,Ruby 型を調べる

PythonRubyは使用時に変数宣言をしなくてもいい。逆に言うと、ソースコード見ただけだと、型が分からないことがある。そんなときにどうやって型を調べるか?という問題。

Python

>>> v = 10
>>> v
10
>>> type(v)
<type 'int'>

Ruby

irb(main):001:0> v = 10
=> 10
irb(main):002:0> v
=> 10
irb(main):003:0> v.class
=> Fixnum

相違点

PythonRuby使っていてたまに違和感感じるんだけど、語順違うんだよね!Python使いの自分からすると、Rubyを使っていると違和感を感じる。逆もまた然りなんじゃないだろうか?

手続き型言語の関数だと、

func(val)

みたいになることが多い。

それにたいして、オブジェクト指向の言語、特にクラスやオブジェクトという概念がある言語では、

val.func()

みたいな語順になることが多い。

英語と日本語って、述語と目的語の語順が違うから、それが違うと違和感を感じるのと一緒のような感覚かもしれない。

PythonRubyも同じくオブジェクト指向の言語なんだけど、相違点があるってのはおもしろい。Pythonの場合、どのオブジェクトにも共通に使うようなものの場合、オブジェクトの持つアトリビュートのような扱いじゃなくて、トップレベルで使える関数みたいな使い方になっているようだ。興味深い。