Skip to content

Instantly share code, notes, and snippets.

@toshimaru
Created September 5, 2012 16:46
Show Gist options
  • Save toshimaru/3639714 to your computer and use it in GitHub Desktop.
Save toshimaru/3639714 to your computer and use it in GitHub Desktop.
python クラス基礎
# http://d.hatena.ne.jp/kakurasan/20080414/p1
#! /usr/bin/python
# -*- encoding: utf-8 -*-
a = 1
class TestClass:
a = 10 # メンバ関数からは「self.a」で扱われる
def __init__(self):
"""オブジェクトの初期化処理・コンストラクタとも"""
a = 99 # __init__()内でのみ有効
#self.a = a # この代入を実行するとメンバ変数aの値は初期化時に99になる
def meth1(self):
print "meth1(): a = %d" % a # グローバルな「a」
def meth2(self):
a = 50
print "meth2(): a = %d" % a # meth2()内でのみ有効な「a」
def get_a(self):
return self.a
def set_a(self, new_a):
self.a = new_a
test = TestClass()
print "main: test.a = %d" % test.a # メンバ変数を直接参照している 値は10
test.meth1() # グローバルな「a」を参照 値は1
test.meth2() # meth2()内でのみ有効な「a」を参照 値は50
print "main: test.get_a() = %d" % test.get_a() # メンバ変数を間接的に参照 値は10
print "main: set_a(20)"; test.set_a(20) # メンバ変数を間接的に指定
print "main: test.get_a() = %d" % test.get_a() # メンバ変数を間接的に参照 値は20
print "main: test.a = %d" % test.a # メンバ変数を直接参照 値は20
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment