昨日生まれたPython初学者です、よろしくおねがいします!
###質問本文
質問内容ですが、
PythonでHttpRequestってどうやって受け取るんだろう、といろいろ探していたところ、以下記事にアタリました。
21.22. http.server — HTTP サーバ
そこには以下のような例文がありますが、そこで気になる箇所が・・・
lang
1def run(server_class=HTTPServer, handler_class=BaseHTTPRequestHandler): 2 server_address = ('', 8000) 3 httpd = server_class(server_address, handler_class) 4 httpd.serve_forever()
server_class=HTTPServer
のように引数でなんだかクラスっぽいものを格納してるじゃないですか!!
しかも関数内で
httpd = server_class(server_address, handler_class)
のようにコンストラクタっぽいものが走っている・・・
当方PHP畑からやってきたため、入れるならクラスじゃなくてインスタンスになっちゃうのでは、と思っていたので混乱中です。
というわけで、
Pythonは変数にクラスを代入できる、という認識であっていますでしょうか。
また、Pythonがクラスを変数に代入するたぐいの情報や記事を見つけられなかったので、
そういう文献がありましたらそれも是非教えていただきたいです!
Python使いの皆様、どうぞよろしくおねがいします!
###実際に格納してみた
回答者の皆様のおかげで格納できることがわかったので実際に色々叩いてみました。
先に試しておけよ!
lang
1$python 2 3>>> 4>>> class Hoge(): 5... pass 6... 7>>> Hoge 8<class __main__.Hoge at 0x10fefaa78> 9>>> fuga = Hoge 10>>> fuga 11<class __main__.Hoge at 0x10fefaa78> 12<type 'classobj'> 13>>> type(Hoge) 14<type 'classobj'> 15>>> type(Hoge()) 16<type 'instance'> 17>>> isinstance(Hoge,object) 18True 19>>> isinstance(Hoge,classobj) 20Traceback (most recent call last): 21 File "<stdin>", line 1, in <module> 22NameError: name 'classobj' is not defined 23>>>
なるほど、確かにHogeクラスはtype:classobjでobjectクラスのインスタンスみたいです。
classobjのインスタンスではない等新しい疑問もわきましたがそれはおいおい・・・
回答2件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
退会済みユーザー
2018/07/13 05:15
2018/07/13 11:13 編集
2018/07/13 11:25