#はじめに
小生はこれまで書いてきたステップ数、時間ではJavaが圧倒的に多いです。
昨今、Pythonがかっこいいので勉強しています。
Javaとの違いをわかりしだいメモしていきたいです。
#インクリメント
pythonにはインクリメント演算子(++)が無い。
#オーバーロード
pythonはオーバーロードしたメソッド(同名だが引数の構成が異なる
メソッド)が作れない。
#for文
Java
for(int i=0;i<10;i++){
//処理
}
Python
for i in range(10):
#処理
#クラスメソッドの引数
pythonはクラスメソッドの第1引数は自分自身のオブジェクトであり、
慣習的にselfが使用される。
#インスタンス変数
pythonはインスタンス変数を使う時は、クラス内であっても明示的に
クラスオブジェクトを示す変数名で修飾しないといけない。(インスタンスメソッドも同様)
Java
class Hoge{
int arg1;
private void func(){
arg1=0;
}
}
Python
class Hoge:
def func(self):
self.arg1=0
#クラス変数(クラス変数)
pythonはクラス変数を使う時はクラス内であっても明示的にクラス名で修飾しなくてはいけない。
※typeでクラスを取り出すやり方でも可。
Python
class Test:
a="クラス変数"
def test(self):
self.a="インスタンス変数"
#クラス変数が表示される(どちらの書き方も可)
print(Test.a)
print(type(self).a)
#インスタンス変数が表示される
print(self.a)
test=Test()
test.test()
修飾するオブジェクトがインスタンスであればインスタンス変数
クラスであればクラス変数として扱われる。