class Yamanote:
	pass
shinagawa = Yamanote()
shinagawa.city = "Minato-ku"
shinagawa.user = 370000
shinagawa.line = 24
shibuya = Yamanote()
shibuya.city = "Shibuya-ku"
shibuya.user = 3310000
shibuya.spot = "hachiko"
print(shinagawa.city)
print(shibuya.spot)
[vagrant@localhost python]$ python app.py
Minato-ku
hachiko
コンストラクタを使う。
class Yamanote:
	def __init__(self, city):
		self.city = city
shinagawa = Yamanote("Shinagawa-ku")
shibuya = Yamanote("Shibuya-ku")
print(shinagawa.city)
print(shibuya.city)
[vagrant@localhost python]$ python app.py
Shinagawa-ku
Shibuya-ku
クラス変数を呼び出す。
class Yamanote:
	count = 0
	def __init__(self, city):
		Yamanote.count += 1
		self.city = city
shinagawa = Yamanote("Shinagawa-ku")
shibuya = Yamanote("Shibuya-ku")
print(Yamanote.count)
ふむ。
[vagrant@localhost python]$ python app.py
2
メソッド
class Yamanote:
	count = 0
	def __init__(self, city):
		Yamanote.count += 1
		self.city = city
	def announce(self):
		print("This is " + self.city)
shinagawa = Yamanote("Shinagawa-ku")
shibuya = Yamanote("Shibuya-ku")
shinagawa.announce()
shibuya.announce()
わかるんだが、使っていかないと、慣れないね。
[vagrant@localhost python]$ python app.py
This is Shinagawa-ku
This is Shibuya-ku
@classmethod
class Yamanote:
	count = 0
	def __init__(self, city):
		Yamanote.count += 1
		self.city = city
	def announce(self):
		print("This is " + self.city)
	@classmethod
	def show_info(cls):
		print(str(cls.count) + "instances")
shinagawa = Yamanote("Shinagawa-ku")
shibuya = Yamanote("Shibuya-ku")
Yamanote.show_info()
あああああ
[vagrant@localhost python]$ python app.py
2instances
class のprivate, public
class Yamanote:
	def __init__(self, city):
		self.__city = city
	def announce(self):
		print("This is " + self.__city)
shinagawa = Yamanote("Shinagawa-ku")
shibuya = Yamanote("Shibuya-ku")
print(shinagawa.__city)
[vagrant@localhost python]$ python app.py
Traceback (most recent call last):
  File “app.py”, line 12, in 
    print(shinagawa.__city)
AttributeError: Yamanote instance has no attribute ‘__city’
ほえ~
継承のsuperがうまくいかない。
class Yamanote:
	def __init__(self, spot):
		self.spot = spot
	def announce(self):
		print("Enjoy " + self.spot)
class Startup(Yamanote):
	def __init__(self, spot, company):
		super().__init__(spot)
		self.company = company
	def hello(self):
		print("What's up " + self.company)
harajyuku = Startup("takeshita","sm")
print(Harajyuku.spot)
Harajyuku.hello()
[vagrant@localhost python]$ python app.py
Traceback (most recent call last):
  File “app.py”, line 16, in 
    harajyuku = Startup(“takeshita”,”sm”)
  File “app.py”, line 11, in __init__
    super().__init__(spot)
TypeError: super() takes at least 1 argument (0 given)
あ、python2系はエラーになるのね。。早くいってよ、もー
import math, random
print(math.pi)