読者です 読者をやめる 読者になる 読者になる

へっぽこびんぼう野郎のnewbie日記

けろけーろ(´・ω・`)!

理解できないのは頭が悪いからというわけではない。それと__getattr__(python)

次の文章の意味を考える。

__getattr__メソッドは、属性へのアクセスリクエストに対応するフックメソッドです。このメソッドは、.を使って属性にアクセスするためのコードにインスタンスが使用された場合に呼び出され、指定された属性名(文字列)を引数として受け取ります。ただし、指定の属性名が通常のオブジェクトツリーの検索で見つかった場合には、__getattr__メソッドは呼び出されません。

太文字が初見単語

斜め文字があまりよくわかっていない単語

 

たぶんプログラミングとか知らない人からしたらこんな文章に見えるだろう。

AAAAABBBBBは、CCCへのDDDDDDDDに対応するEEEEEEEです。このBBBBBは、FFを使ってCCCにアクセスするためのコードにGGGGGGが使用された場合に呼び出され、指定されたCCC名(文字列)をHHHとして受け取ります。ただし、指定のCCC名が通常のIIIIIIIIIの検索で見つかった場合には、AAAAABBBBBは呼び出されません。

こんなのわかるわけない。

へ〜、AAAAABBBBBはEEEEEEEなんだね〜

で、GGGGGGが使われたときに呼び出されてHHHを受け取るのか〜

なんていうことが読み取れても、

それが何を意味するのかはまったくわからない。

 

で、

結局__getattr__メソッドがどういうものなのかよくわからない。

 

get attributeの略らしいのだが、

そもそもattributeがわからない。

attributeは、属性・〜に帰する、という意味だけど、

それがいまいち理解できていない。

 

文章を縮めて簡単にしてみる。

__getattr__は。フックメソッドです。

特定の条件下でインスタンスが使用された場合に呼び出され、

指定された属性名を引数として受け取ります。

指定の属性が検索で見つかった場合は呼び出されません。 

 

フックメソッドってなんじゃ

ググる

→あんまり出てこない。

→hook methodでググる

→methods called by the Runtime

 →実行時に呼び出されるメソッド

 

Runtime は 「実行時」という意味。

 

 「.」を使って属性にアクセスするためのコードに、インスタンスが使用されたら、__getattr__メソッドが呼び出される。

→属性にアクセスするためのコードにインスタンスを使ったら、__getattr__メソッドが呼び出される。

 

↓つまりこういう状況

class hoge():

    def __getattr__ (self, moge):

        if moge == "fuck":

            return 1

X = hoge()

X.fuck →__getattr__が呼び出されたよ!!!

みたいな感じ

指定された属性名を引数として受け取る

→__getattr__は、指定された属性名を引数として受け取る。

(この例だと、fuckを受け取る。)

このfuckが

__getattr__(self, moge):

mogeの部分に入るってこと。

 

指定の属性名が通常のオブジェクトツリーの検索で見つかった場合には、__getattr__メソッドは呼び出されません。

 

オブジェクトツリーって具体的にどういうものなんだよ

ググる

→見つからない

→what is object treeでググる

→見つからない

→!?

 

無理矢理オブジェクトツリーを表現してみる。

→オブジェクトの相互関係を概念化したもの

 

オブジェクトツリーの検索

→相互に関係しあったオブジェクトを検索

 

つまり、

いつもの属性の呼び出し」のこと

 

まとめるとこうなる。

__getattr__メソッドは、インスタンス使って属性にアクセスする場合に呼び出され、そのときの属性名を引数として受け取ります。(ただし、指定の属性名が他の場所で見つかった場合には、__getattr__メソッドは呼び出されません。)

 

結局のところ、よくわからない文章を理解するには、文章読解能力が必要だということなのかな〜と思った。

そして、文章を読むには、語彙も必須だけど、文の構造を理解する必要性もあるんじゃないかと思った。長文とかね。

この記事を書きながら気が付いたけど、僕が英語の長文が苦手な理由は、文の構造をスッと頭に入れることが苦手だからかもしれない。

難しい文章を読み慣れていないから、理解が遅いのだと思う。

ライトノベルとか、そういうのばかり読んでいてはダメだね。

なんで日本語をパーサしているのかって話。

 

難しい文章を読む能力って、意外と重要なのかもしれない。

難解な文章を読むのは精神がゴリゴリ削られるけどね。