作者: KIMURA Koichi
日時: 2007/10/21(12:59)
Bruce.です。


----- Original Message ----- 
From: ""機械伯爵"" <kikwai@...>
To: <TSpython@...>
Sent: Sunday, October 21, 2007 12:17 PM
Subject: [TSpython:1009] Re: Python のクセ


>  まぁ、北斗ネタはおいといて。

えーッ。

> <キーワード引数>
>> まあそうかもしれないっすけど、キーワード引数なんかはずいぶんと前から
>> 望まれているけど、いまだに実装されていないわけで。
>> #まあ技術的なものでないところでの問題が主なんでしょうが
>
>  キーワード引数は便利だと思うけど、コードが見難くなるとか
> いう理由があるのかなぁ?(そうは思わないけど)

一番の問題は、まつもとさんが納得のいく仕様が決まらないということでしょう。
アイデアは幾つか出てるんですが。ポイントは、Pythonでいうところの
*arg とか **kw のようなものをどうするか、といったあたりだったような記憶があります。

MLを探せば見つかると思いますので、時間があれば
#今日はこれからお出かけ♪

> <リターン>
>  でも逆の議論もあって、例えばPythonで手続きっぽい関数を書く時は、
> PythonではNoneを返すことで外にいらん値を出すのを抑制してるのだけ
> ど、Rubyでそうすると、逆にreturn null(だっけ?)と書かなければ
> ならないわけで。

無意味な値ということなら nil っすかね。
まあ言葉の意味合いとしてはnullと似たようなものと思いますが。

副作用がメインのメソッドでも「オブジェクトを返す」のがRubyの基本だと思います。 

#nilもオブジェクトですし
あ、

irb(main):001:0> def foo(x)
irb(main):002:1>   puts x
irb(main):003:1>   nil
irb(main):004:1> end
=> nil
irb(main):005:0> def bar(x)
irb(main):006:1>    puts x
irb(main):007:1> end
=> nil
irb(main):008:0> foo(4649)
4649
=> nil
irb(main):009:0> bar(4649)
4649
=> nil
irb(main):010:0> def baz(x)
irb(main):011:1>     puts x
irb(main):012:1>     x+1
irb(main):013:1> end
=> nil
irb(main):014:0> baz(4949)
4949
=> 4950

うん。やっぱnilですね。


> class A:
>  def mes0(self, n):
>    self. n = n
>    return self
>
>  上のようなクラスがあり、a = A()でインスタンスを作ったとすると、メソッド
> mes0を呼び出す方法としては……
>
> a.mes(10)
>
>  という方法と、
>
> A.mes(a, 10)
>
>  という方法が両方できます(というか、後者の略記法が前者と思った方がいい
> かも……)

おお、記憶の片隅に引っかかってましたがすっかり忘れていました>後者
でもこれってひょっとして別のクラスのオブジェクトを渡せたりします?

-- 
木村浩一
 I thought what I'd do was, I'd pretend I was one of those deaf-mutes or 
shoud I?