1. ホーム
  2. スクリプト・コラム
  3. パイソン

Pyhton 学習とデータマイニングの自己原理と応用分析

2022-01-16 03:26:43

そう、これは私が初めてPythonを学んだときの魂の叫びです。

私たちはいつもクラスの中にselfを見ますが、selfは何もしていないように感じ、ただそこにいて場所を取っているだけです。

もしあなたが同じことを疑問に思っているなら、おめでとう、あなたは授業を学んでいないのです。

では、セルフとは何者かを説明する前に、いくつかのことを明らかにしておこう。

  • クラスとは何か、インスタンスとは何か?
  • オブジェクトとは何ですか?メソッドと関数とは何ですか?

余談ですが、個人的にはプログラミングにおいて、元々英語の固有名詞を中国語に訳すのは反対です。言語が思考を形成するという言葉があるように、固有名詞を一度翻訳してしまうと、どんなにうまく翻訳しても、必ずある程度の意味的な曖昧さが出てしまうからです。例えば、"class"、私たちはこの単語を見ると、"class"を連想しますが、訳は"class"となっているので、無意識に従うことになります。 無意識に"class"や"a large class"により、この固有名詞を理解しようとするのです。固有名詞のclassは"class"や"a large class"とはほとんど関係ないので、これは非常に深刻なミスリードの可能性があります。ですから、翻訳せず、その単語の意味を知らないふりをして、学習する過程で徐々にその単語の意味を理解していくのがよいでしょう。

実は、英語の限界から、プログラミング言語の排他的な用語の多くも、大御所の頭を一撃で、やみくもに上げているのです。例えば、matplotlibをaxesという言葉で数え切れないほど荒らしたことがあります。

またまた、話が長くなりました。本題に戻ります。

1. クラスとは何か、インスタンスとは何か、オブジェクトとは何か?

クラス:組立工場と理解することができる。ロボットを生産しようと思ったら、まず工場を作ろう。まず、確認しましょう。まず腕を取り付け、次に頭を取り付けたい。そして、小さな壊れたロボットの組み立てラインができあがります。この工場はよりインテリジェントで、腕や頭の数を調整することができます。

C:\music-website-master\music-client> npm run build

> [email protected] build C:\music-website-master\music-client
> node build/build.js

- building for production... (node:15876) Warning: Accessing non-existent property 'cat' of module exports inside circular dependency
(Use `node --trace-warnings ... ` to show where the warning was created)
(node:15876) Warning: Accessing non-existent property 'cd' of module exports inside circular dependency
(node:15876) Warning: Accessing non-existent property 'chmod' of module exports inside circular dependency
(node:15876) Warning: Accessing non-existent property 'cp' of module exports inside circular dependency
(node:15876) Warning: Accessing non-existent property 'dirs' of module exports inside circular dependency
(node:15876) Warning: Accessing non-existent property 'pushd' of module exports inside circular dependency
(node:15876) Warning: Accessing non-existent property 'popd' of module exports inside circular dependency
(node:15876) Warning: Accessing non-existent property 'echo' of module exports inside circular dependency
(node:15876) Warning: Accessing non-existent property 'tempdir' of module exports inside circular dependency
(node:15876) Warning: Accessing non-existent property 'pwd' of module exports inside circular dependency
(node:15876) Warning: Accessing non-existent property 'exec' of module exports inside circular dependency
(node:15876) Warning: Accessing non-existent property 'ls' of module exports inside circular dependency
(node:15876) Warning: Accessing non-existent property 'find' of module exports inside circular dependency
(node:15876) Warning: Accessing non-existent property 'grep' of module exports inside circular dependency
(node:15876) Warning: Accessing non-existent property 'head' of module exports inside circular dependency
(node:15876) Warning: Accessing non-existent property 'ln' of module exports inside circular dependency
(node:15876) Warning: Accessing non-existent property 'mkdir' of module exports inside circular dependency
(node:15876) Warning: Accessing non-existent property 'rm' of module exports inside circular dependency
(node:15876) Warning: Accessing non-existent property 'mv' of module exports inside circular dependency
(node:15876) Warning: Accessing non-existent property 'sed' of module exports inside circular dependency
(node:15876) Warning: Accessing non-existent property 'set' of module exports inside circular dependency
(node:15876) Warning: Accessing non-existent property 'sort' of module exports inside circular dependency
(node:15876) Warning: Accessing non-existent property 'tail' of module exports inside circular dependency
(node:15876) Warning: Accessing non-existent property 'test' of module exports inside circular dependency
(node:15876) Warning: Accessing non-existent property 'to' of module exports inside circular dependency
(node:15876) Warning: Accessing non-existent property 'toEnd' of module exports inside circular dependency
(node:15876) Warning: Accessing non-existent property 'touch' of module exports inside circular dependency
(node:15876) Warning: Accessing non-existent property 'uniq' of module exports inside circular dependency
(node:15876) Warning: Accessing non-existent property 'which' of module exports inside circular dependency


BuildRobotというファクトリーを構築しているクラスは以下の通りです。 イニット __' はこのパイプラインに、まずこのロボットにいくつかのアーム ('armcount') といくつかのヘッド ('headcount') が必要であることを伝えています。selfについては後で説明します。

この時点で、あなたのクラスが構築されるように実行することができます。しかし、この時点ではまだ生産を開始していないため、ファクトリーは何も生産していません。以下はそのインスタンスです。

インスタンス: ファクトリーを一度起動することで生産されるロボットを理解することができます。では、前に作った工場を使って、2本の腕と頭を持つ普通のロボットを生産してみましょう。

C:\music-website-master\music-client>node --version
v14.15.1


腕の数が正しいかどうかを確認する?

もう一台、普通じゃないロボットを作ってみよう。

weird_robot = BuildRobot(4,1)


normal_robot と weird_robot はどちらもインスタンスです。腕の数は異なりますが、どちらも基本的にはこのクラスから作られたロボットで、腕と頭で構成されています。

オブジェクトを作成します。これは少し厄介で、ほとんどの場合、オブジェクトとインスタンスは同じ意味で、どちらもこのロボットを指します。

<ブロッククオート

normal_robotは'buildrobot'のインスタンスです。

normal_robot は 'buildrobot' オブジェクトです。

この上の2つの文は等価です。

2. メソッドとは、関数とは何ですか?

どちらもdefで定義されています。 少し大雑把に理解すると、クラスの中の関数をメソッドと呼ぶので、メソッドはクラス、インスタンスに関連する関数ということになります。

例として

上のファクトリーのまま、今度は腕に色をつけるワークショップを追加します。

class BuildRobot():
    def __init__(self,armcount,headcount):
        self.armcount = armcount
        self.headcount = headcount
    def paintarm(self,color):
        print("paint arm:",color)


このペイントアームはメソッドです。例によって、今はクラスが生産していないので、メソッドから実際の製品が出てくることはないのです。まずはインスタンスを生成してみるしかない。

[...] 

[...] 

[...] 

[...] 

[...] 

[...]  [...]  [...] 

[...] 

[...] 

[...] 

[...] 

[...] 

[...] 

[...] 

[...] 

[...] 

[...] 

[...] 

[...] 

[...] 

[...] 

[...] 

[...] 

[...]  [...] 

[...] 

[...] 

[...]  [...]  [...] 

[...] 

[...] 

[...]  [...] 

[...] 

[...] 

[...] 

[...] 

[...] 

[...] 

[...] 

[...] 

[...] 

[...] 

[...] 

[...] 

[...] 

[...] 

[...] 

[...] 

[...] 

[...] 

[...] 

[...] 

[...] 

[...] 

[...] 

[...]  [...] 

[...] 

[...] 

[...]  [...]  [...] 

[...] 

[...] 

[...] 

[...] 

[...] 

[...] 

[...]  [...] 

[...] 

[...] 

[...]  [...] 

[...] 

[...] 

[...] 

[...] 

[...] 

[...] 

[...] 

[...] 

[...] 

[...]  [...]  [...] 

[...] 

[...] 

[...] 

[...] 

[...] 

[...] 

[...] 

[...] 

[...] 

[...] 

[...]  [...]  [...] 

[...] 

[...] 

[...]  [...] 

[...] 

[...] 

[...]  [...] 

[...] 

[...] 

[...] 

[...] 

[...] 

[...] 

[...] 

[...] 

[...] 

[...] 

[...] 

[...] 

[...] 

[...] 

[...] 

[...] 

[...] 

[...] 

[...] 

[...] 

[...] 

[...]