Hello
Pythonについての解説をする前に、少し他の言語との違いについて説明しましょう。
Pythonにおけるスコープとは、インスタンス変数とクラス変数の規定された場所です。
クラス変数とインスタンス変数の違いは、スコープによって異なります。
クラス変数が存在しない場合は、クラス内ではインスタンス変数が使えますが、クラス変数が存在する場合は、インスタンス変数は使用できません。
クラス変数が存在しないことが、普通にコーディングしていると多々あるので、少し説明しましょう。
クラス変数が存在しない場合は、インスタンス変数とほとんど同じように使用できます。これが、クラス変数が存在しない場合の利点です。
インスタンス変数を使用する場合、インスタンス変数とクラス変数の名前は、同じではありません。
インスタンス変数を使用する場合、一般的に、クラス変数が存在しないようにしときます。
Pythonのスコープは、実行時に自動的に生成されます。
このため、スコープが何処にあるかは、コーディングしている間に気になることはありません。
特に、クラスを作成している時には、スコープがどこにあるのか気になることはないでしょう。
Javaにおけるスコープは、実行時に自動的に生成されません。
Javaでは、コードでスコープを定義しなければ、実行時にどこの何処にスコープがあるかわかりません。
Javaでは、コードでスコープを定義します。
Javaでは、クラス内の各メソッドでプロパティを定義します。
また、クラス変数の変数名とインスタンス変数の変数名は同じではありません。
初心者は、Pythonのように、スコープが自動的に生成されているので、Javaのように、安心してコードを書けるということを覚えておくといいでしょう。
少し他の言語との違いについて説明しましたが、Pythonについての解説をしていきます。
Pythonについて説明する前に、まず、文法を説明しましょう。
文法というと、言葉がどのような順番で使用できるか説明します。
Pythonは、C言語と言っても過言ではない、シンタックスシュガーな言語です。
Pythonにおける文法の規定は、
関数呼び出しは、関数の名前の後ろにアポストロフィを付ける
関数呼び出しの後ろには、関数引数の名前の後ろにアポストロフィを付ける
アポストロフィの後ろには、関数引数の型の名前の後ろにアポストロフィを付ける
関数呼び出しの後ろには、関数の引数存在する場合は、関数の名前の前に「()」を付ける
関数引数の後ろには、関数の引数存在する場合は、関数の引数の型の名前の後ろに「:」を付ける
関数呼び出しの後ろには、関数の引数存在しない場合は、関数名の前に「()」を付ける
が定義されています。
Pythonには、他言語と異なる文法である「文字列リテラル」という文法があります。
「文字列リテラル」とは、文字列を記述する際に、リテラルではなく「文字列」と記述する文法です。
「文字列リテラル」という文法については、他の言語でも使える文法ですので、初心者には、使わせてあげることをおすすめします。
Pythonは、言語仕様が完成していない事を鑑みて開発が進んでいる為、言語仕様が完成していない為、他言語と異なる文法も定義されています。
それでは、Pythonにおける文法について、言語仕様のURLから見ていきましょう。
文法の説明をしている言語仕様のURLは、以下になります。
Pythonの言語仕様のURLは、以下になります。
Pythonの言語仕様には、安直に、英語版の仕様が置かれていますが、日本語版の仕様は、以下になります。
文法の詳細