アクセス制限(アクセス制限できるとは言っていない)

 レッスンはクラスの応用に入りました。まずはアクセス制限の話だったのですが、そもそもPython自体にはアクセス制限という概念はないそうです。外部からアクセスされたくないメンバー変数は変数名をアンダースコアから始める、という慣習があるだけです。アンダースコア二つだと普通の方法では呼び出せないですが、特殊な書き方をすると呼び出せてしまうので、これも相当怖いですね。

継承と多重継承

 継承については他の言語と同じですね。オーバーライドの際に宣言が必要ないというのが楽なのか不安定なのか、今の段階では判断がつきません。

# coding: utf-8

class A:
	def say_hi(self):
		print("hi from A")

class B:
	def say_hi(self):
		print("hi from B")

#class C(A, B):
class C(B, A):
	pass

c = C()
c.say_hi()

 多重継承も、同名のメソッドの扱いについて、継承を書くときの順番で決まるというのでなかなか怖いですね。ただ、他の言語だと制約の多い多重継承が簡単にできそうなのはメリットのように感じます。