前回の内容では field を変更したときに値がすべて削除された。
できれば field が a, b, cから b, c, dに変更されたときにはb, c の値を保存しておきたいのでプログラムを修正。
def Dynamic(name, fields):
""" returns a class object which has fields attribute.
the class is iterable."""
dic = dict([x,None] for x in fields)
o = type(name, (_dynamic,), dic)
o._fields = fields
return o
class _dynamic(object):
_fields = []
def __init__(self, *args, **kwargs):
for i,value in enumerate(args[0]):
setattr(self, self._fields[i], value)
def __iter__(self):
for field in self._fields:
yield getattr(self, field)
def __setattr__(self, name, value):
if name == "_fields":
for field in set(self._fields) - set(value):
delattr(self, field)
for field in set(value) - set(self._fields):
super(_dynamic, self).__setattr__(field, None)
super(_dynamic, self).__setattr__(name, value)
2012年6月30日土曜日
2012年6月24日日曜日
動的に属性を変更可能なクラス
namedtupleはとても便利だが、値の変更ができない。
値の変更可能な、エセnamedtuple を作ってみました。
namedtuple にはあってこれにはない属性がいろいろあるけど、そこは追々作るということで。
def Dynamic(name, fields):
""" returns a class object which has fields attribute.
the class is iterable."""
dic = dict([x,None] for x in fields)
o = type(name, (_dynamic,), dic)
o._fields = fields
return o
class _dynamic(object):
_fields = []
def __init__(self, *args, **kwargs):
for i,value in enumerate(args[0]):
setattr(self, self._fields[i], value)
def __iter__(self):
for field in self._fields:
yield getattr(self, field)
def __setattr__(self, name, value):
if name == "_fields":
for field in self._fields:
delattr(self, field)
for field in value:
super(_dynamic, self).__setattr__(field, None)
super(_dynamic, self).__setattr__(name, value)
値の変更可能な、エセnamedtuple を作ってみました。
namedtuple にはあってこれにはない属性がいろいろあるけど、そこは追々作るということで。
def Dynamic(name, fields):
""" returns a class object which has fields attribute.
the class is iterable."""
dic = dict([x,None] for x in fields)
o = type(name, (_dynamic,), dic)
o._fields = fields
return o
class _dynamic(object):
_fields = []
def __init__(self, *args, **kwargs):
for i,value in enumerate(args[0]):
setattr(self, self._fields[i], value)
def __iter__(self):
for field in self._fields:
yield getattr(self, field)
def __setattr__(self, name, value):
if name == "_fields":
for field in self._fields:
delattr(self, field)
for field in value:
super(_dynamic, self).__setattr__(field, None)
super(_dynamic, self).__setattr__(name, value)
2011年3月31日木曜日
海外先進国インデックスファンドの比較(2011/03/30)
2011年3月19日土曜日
早野クイズ
【理系学生必修】今,半減期8日のI-131原子核が10000個あったとします.8日後に何個残っているか答えなさい.最初の数が2個の場合はどうでしょう?
じゃ最初の数が1個だったらどう?
//10000個の場合、5000を中心とした確率50%の場合の二項分布。2,1個の場合も同様。
【物理学生必修】ヨウ素(I-131)が検出されたと報じられています.I-131であることを確認する原理を,100字以内で述べよ.
//ベータ壊変するけど、電子のエネルギーを正確に計る手間を考えたら、ガンマ線のエネルギーから判定するのがお手軽かと。I-131から出る特徴的なエネルギーのガンマ線を検出することで同定する。
【物理大学院生必修】I-131を検出するのに必要な測定器と,その測定原理について述べよ
//ゲルマニウム検出器でガンマ線のエネルギーを計る。サンプル以外にBG放射線と比較し、ヨウ素131に特徴的なガンマ線のところにピークが出ることを確認する、と。
【物理大学院生選択問題】I-131が出す放射線の種類をすべて述べよ.I-131であることが確認できる放射線の種類とそのエネルギーを述べよ.
//パス。もう大学卒業しているので手元に資料がない。
【医療従事者必修】I-131の体内被曝が懸念されています.平常時,日本人の体の中に,放射性物質がどのくらいあり,それによる体内被曝量はどのくらいか,即答してください.
//パス。同位体比率とか半減期がわかる資料が手元にない。
【医療従事者必修】報じられている「1キログラム当たり1万5020ベクレル」とは,何をあらわす単位か,即答してください.http://s.nikkei.com/hWw1fk
//比放射能?
【医学部学生選択問題】「放射性ヨウ素が1キログラム当たり1万5020ベクレル」と「放射性セシウムも524ベクレル」という報道があります.ヨウ素とセシウムの違いにも触れ,健康への影響の有無を適確に説明しなさい.http://s.nikkei.com/hWw1fk
//パス。化学的性質の違いはもはや忘却の彼方。
【地球物理学生必修】天然放射線による被曝量が,その人が住んでいる地域によって異なる理由を,簡潔に答えなさい.
//自然放射線は宇宙、大地、体内などから被爆する。宇宙からの被曝は高度に、大地からの被曝は地質によって変化するため。
【理系学部生必修】半減期Tの放射性物質の個数Nの時間変化N(t)をあらわす微分方程式を即答せよ.
N(t)=N*2^(-t/T)
dN/dt = -N*2~(-t/T)*log2 / T
【医療従事者選択】体内被曝が疑われる方があったとします.体内被曝の有無と,その程度を判定するにはどうすればよいでしょう.
【理系学生選択】測定値15020 Bq/kg などと報じられていますが,同じサンプルを,その直後にもう一度測定するとどうなると考えられるか,簡潔に記しなさい.http://bit.ly/eAWzLW
【理系学生必修】報道やWebで使われている単位, Sv, Sv/h, Gy, Gy/h, Bq, Bq/kgについて,簡潔に説明してください.
【医療関係者必修】I-131,なぜ牛乳なのか.牛肉はどうか.即答してください.
じゃ最初の数が1個だったらどう?
//10000個の場合、5000を中心とした確率50%の場合の二項分布。2,1個の場合も同様。
【物理学生必修】ヨウ素(I-131)が検出されたと報じられています.I-131であることを確認する原理を,100字以内で述べよ.
//ベータ壊変するけど、電子のエネルギーを正確に計る手間を考えたら、ガンマ線のエネルギーから判定するのがお手軽かと。I-131から出る特徴的なエネルギーのガンマ線を検出することで同定する。
【物理大学院生必修】I-131を検出するのに必要な測定器と,その測定原理について述べよ
//ゲルマニウム検出器でガンマ線のエネルギーを計る。サンプル以外にBG放射線と比較し、ヨウ素131に特徴的なガンマ線のところにピークが出ることを確認する、と。
【物理大学院生選択問題】I-131が出す放射線の種類をすべて述べよ.I-131であることが確認できる放射線の種類とそのエネルギーを述べよ.
//パス。もう大学卒業しているので手元に資料がない。
【医療従事者必修】I-131の体内被曝が懸念されています.平常時,日本人の体の中に,放射性物質がどのくらいあり,それによる体内被曝量はどのくらいか,即答してください.
//パス。同位体比率とか半減期がわかる資料が手元にない。
【医療従事者必修】報じられている「1キログラム当たり1万5020ベクレル」とは,何をあらわす単位か,即答してください.http://s.nikkei.com/hWw1fk
//比放射能?
【医学部学生選択問題】「放射性ヨウ素が1キログラム当たり1万5020ベクレル」と「放射性セシウムも524ベクレル」という報道があります.ヨウ素とセシウムの違いにも触れ,健康への影響の有無を適確に説明しなさい.http://s.nikkei.com/hWw1fk
//パス。化学的性質の違いはもはや忘却の彼方。
【地球物理学生必修】天然放射線による被曝量が,その人が住んでいる地域によって異なる理由を,簡潔に答えなさい.
//自然放射線は宇宙、大地、体内などから被爆する。宇宙からの被曝は高度に、大地からの被曝は地質によって変化するため。
【理系学部生必修】半減期Tの放射性物質の個数Nの時間変化N(t)をあらわす微分方程式を即答せよ.
N(t)=N*2^(-t/T)
dN/dt = -N*2~(-t/T)*log2 / T
【医療従事者選択】体内被曝が疑われる方があったとします.体内被曝の有無と,その程度を判定するにはどうすればよいでしょう.
【理系学生選択】測定値15020 Bq/kg などと報じられていますが,同じサンプルを,その直後にもう一度測定するとどうなると考えられるか,簡潔に記しなさい.http://bit.ly/eAWzLW
【理系学生必修】報道やWebで使われている単位, Sv, Sv/h, Gy, Gy/h, Bq, Bq/kgについて,簡潔に説明してください.
【医療関係者必修】I-131,なぜ牛乳なのか.牛肉はどうか.即答してください.
2011年1月3日月曜日
python HTTPクライアントでログイン(POST)処理
特にSBI証券でのリダイレクト関連でセッションが切れることへの対策
が全くわかりません。
ログイン後の処理は試行錯誤中。誰か教えてくれんかなあ。
が全くわかりません。
ログイン後の処理は試行錯誤中。誰か教えてくれんかなあ。
""" ログイン用の設定 URLやパスワードなど"""
url_string = "ログイン先URL"
form_fields = {
"userName": "*****",
"loginPwdSet": "*****",
'x':'3',
'y':'15'
}
""" POSTでクッキー関連の設定を済ませたopenerを作成 """
def __init__():
cookies = cookielib.CookieJar()
cookie_handler = urllib2.HTTPCookieProcessor(cookies)
redirect_handler = urllib2.HTTPRedirectHandler()
return urllib2.build_opener(redirect_handler, cookie_handler)
""" openerを用いてログイン処理を行う。 """
def login(opener):
try:
form_data = urllib.urlencode(form_fields)
request = urllib2.Request(url_string, form_data)
res = opener.open(request)
return res.read()
except urllib2.HTTPError, e:
print "error has occurred\n"
print e.msg, e.code
except urllib2.URLError, e:
print "error has occurred\n"
print e
def main():
opener = __init__()
response = login(opener)
if __name__ == '__main__':
main()
登録:
投稿 (Atom)
