みろりHP


緑色さんの多目的ブログ
みろりえいちぴー
ごゆるりとおくつろぎあさーせ。
| カテゴリ:マビノギ日記 |
七年後(L)



暑くなってきて、外に出るのが非常に億劫だ。バイクツーリングも、自転車も、ジョギングすらも投げてめっきり室内でゲームしている。そういうときこそネトゲなんじゃあないの!? とマビに帰郷してみたハナシ。


今回は以前にもましてFLのトマトジュース化とダンバの過疎化が進みまくっており、FLを残しておいてくれたふぉーちゃんとルンダD等嗜んできたぜ。




七年も経っていれば当然いろいろ変わっており、何よりビックリしたのはフラソやレッドスケルトンにぶん殴られているふぉーちゃんが1ダメージしか食らっていないことだろう。これはリンク? とかいうスキルの効果らしく、専用のペットを出しておくことでステはおろか防御も増加し、彼女の防御は現在250から300近いらしかった。俺がいた時代は、ミレシアンは防御が低いから攻撃を食らっちゃだめ、っていう時代だったものだが…。今回の帰郷では以前とはちょっとレベルの違うウラシマ気分を味わったよ。うん? いや右下で羽出しているヤツのことはいいんだよ次いくぞ、次。

リンクとやらに対応したペットに乗せてもらった。防御だけじゃなく、現在のキャラクターステータスは1000をゆうに超える勢いらしく、そりゃあウラシマの緑色さんのDEX400が通用するはずもない。つーかふぉーちゃんはペットの育成もがんばっているみたいで、レベル200のペットさんもいるみたいで、リンクの効果でステータスバフをかけたら俺のステータスが抜かれた。いや仮にも累積4000プレイヤーキャラクターのステを抜くペットとはなんぞ?

さすがの緑も死んだ目に。

そうこうしているうちにルンダのボスへ。

とてもおせわになりました。



スキルはめっちゃ増えたし、これオフゲなんじゃねえのってくらい人いないし、箱で強エンチャ装備がばらまかれているようだし、昔とは別物になった感は確かにする。だけれどフィールドと音楽は変わっていないから、ホントどこへ行っても懐かしさで胸いっぱいだ。

昔ここでよくエンチャ依頼人を待ったよなあー。


ここで朝まで喋ったよなあー。



今回ふぉーちゃんと会ったことの裏には、すげえ偶然があったらしい。



て、ていうか昔はフレのログとかこうして晒しまくっていたわけだけれど、この5年7年で俺の価値観にも多少の変化があったのか、すこし「チャットログってアップしていいのか…?」という謎の葛藤が生まれている。

どうでもいいことだが、ログとブログ記事での一人称があべこべなのがどうにも気恥ずかしいトコあるな。いや、本来の一人称はぼくなのだけれど、ブログとか書くときは俺のほうが勢いが出るという考えなんだよな。どうでもよいな。



この猛暑期間には他ネトゲー…FF14等をプレイしたが、やっぱマビのキャラクターの絶妙なデフォルメ具合が俺は好きだなあ。過疎とかサービス終了間際とか掲示板では言われていたが、一般的にみて息の長いゲームだよな。やっぱり根本として魅力的なゲームなんだと思う。


| 緑色 | マビノギ日記 | comments(0) |
| カテゴリ:プログラミング |
Python クラスって何なの



またクラスの話かよ。思えば、pythonを始めて、ちょこちょこ手遊び2年が経過した。記念に2年前の俺へクラスの解説を書いてみる。あの頃はとりあえずドットインストールのpython講座動画で入門したのだよな。振り返ってみようとドットインストールサイトに行ってみたら、python講座が有料になっていた。残念。



さてきみは、足し算の書き方や関数の書き方、リストやディクショナリは理解できたのに、このクラスとかいう謎の何かへ単元が移った途端突然理解不能になり困惑しているところだと思う。ぶっちゃけ直近スクリプト書くにあたっては必要ないと思うし、別にいっかーと思いつつも、ネットに載ってるサンプルスクリプトではやたらめったらクラスが使われているのでますます困惑を極めていることだろう。そのふたつの困惑をとりあえず解決してやるぜ。

クラスってのはディクショナリみたいなもんだから安心しろ
少なくともきみの2年後である俺は、まあ基本的にはディクショナリみたいなもんだと思いながら使っている。下の例を見てみれば、ディクショナリを定義して値を取り出すのも、クラスを定義して値を取り出すのも似たようなものだとわかるだろう?
# ディクショナリ
dic = {
    'a': 'A',
    'b': 'B',
    'c': 'C',
}
print(dic['a'])  # 'A'が取り出せる。

# クラス
class Klass:
    a = 'A'
    b = 'B'
    c = 'C'
print(Klass.a)  # 'A'が取り出せる。
うん? 似てるっぽいけれど、ディクショナリではキーを文字列('a')で指定しているのに対し、クラスのほうは変数(a)で指定しているから違うんじゃないかって? ならばこう書いてやろう。
Klass_dic = Klass.__dict__
print(Klass_dic['a'])  # 'A'が取り出せる。
__dict__
はクラスの中身をディクショナリ形式にしてくれる。これでクラスっていう何かがぶっちゃけディクショナリみたいなもんだということがワカると思う。

サンプルスクリプトでやたらクラスが使われてんのはそれが便利だからだ
きみの2年後である俺がスクリプトにクラスを使うのは、パッケージ化がしたいときだ。今のきみでも、スクリプトを適当に書くより関数にまとめたほうが良いカモっていう感覚はなんとなくもっているだろう? 使い回しがきくようになるし、
変数のスコープが深くなるから他のトコで使う変数と名前衝突するのを防げるもんね。あとまとまってる感じがなんか嬉しいだろ? クラスを使うのはそれと同じ理由だ。きみがテキトーな小さな計算スクリプトをさっくりまとめたくて関数を作るのと同じテンションで、俺はすこし大規模な計算や複数の関数をさっくりまとめたくてクラスを作るのだ。クラスを使うと、{クラス名}.{関数名}って感じで名指しで内側の関数を実行できたり、{クラス名}.{変数名}って感じで値を取り出せたりできる。後者は上述したようディクショナリでも簡単にできるけれど、ディクショナリの中に関数を定義するのはちょっと面倒だし見栄えも気になってくる。
# ディクショナリの中で関数定義する場合
dic = {
    'a': 'A',
    'd': lambda s: s + dic['a']
}
print(dic['d']('a'))  # 'aA'って表示される

# クラスの中で関数定義する場合
class Klass:
    a = 'A'
    def d(s):
        return s + Klass.a
print(Klass.d('a'))  # 'aA'って表示される
後者のほうが書きやすく見やすい感じするだろう。きみの書いているスクリプトが全部ひとつのディクショナリにつっこめる仕組みがクラスってことだ。



幕間。
きみはこれから解説記事で「クラスが設計図でインスタンスがロボットやクルマ」系の例え話をよく目にすることになると思うが、それはきみの役には立たないので見なくてよい。きみはヘンに例え話をされるより、実際の言語仕様で説明されたほうが頭に入るヤツだ。



これだけ執拗に言われればクラスがディクショナリみたいなもんだということは十分わかったと思うけれど、インスタンスって何なのっていう疑問も連なってくるだろう。

インスタンスもディクショナリだと思ってイイよ
いやお前なんでもディクショナリかよときみはツッコミを入れてくるかと思うが、2年後の俺がそういう理解でクラス・インスタンスを実際不自由なく書けるのだから大丈夫だ。てかpythonスクリプトなんてすべてがディクショナリみたいなもんなのだ。数ヶ月後きみは試行錯誤する中でその片鱗に気がつくことになる(Python 変数もどき自動作成)し、さらにその半年後、オライリーという教典を読んでリファレンスという概念を知りその理解が正しかったことを知ることになる(Mark Lutz『初めてのPython』)。a,b,cというクラス変数をもったクラスと、a,b,cというキーをもったディクショナリがおんなじようなもんであるように、a,b,cというクラス変数をもったインスタンスもおんなじようなもんだ。
class Klass:
    a = 'A'
    b = 'B'
    c = 'C'

klass = Klass()
print(klass.a)  # 'A'って表示される
少なくともこの例だとインスタンスがインスタンスである意味がゼロだが、「クラスって何なの」と言ってる段階ではここまででよいと確信してる。その段階でインスタンスのステキな使い方をいっぺんに詰め込まれるとホント厳しくなる。とにかくディクショナリだ。ディクショナリでイイ。


| 緑色 | プログラミング | comments(0) |
      1
2345678
9101112131415
16171819202122
23242526272829
3031     
<< July 2017 >>
+ みろりHP内検索
+ 閲覧記事
+ 過去記事アーカイブ
+ カテゴリ
+ 年月選択
  • 2017年 07月 (5)
  • 2017年 06月 (4)
  • 2017年 05月 (7)
  • 2017年 04月 (8)
  • 2017年 03月 (7)
  • 2017年 02月 (10)
  • 2017年 01月 (6)
  • 2016年 12月 (8)
  • 2016年 11月 (8)
  • 2016年 10月 (5)
  • 2016年 09月 (5)
  • 2016年 08月 (7)
  • 2016年 07月 (9)
  • 2016年 06月 (6)
  • 2016年 05月 (8)
  • 2016年 04月 (10)
  • 2016年 03月 (10)
  • 2016年 02月 (8)
  • 2016年 01月 (9)
  • 2015年 12月 (9)
  • 2015年 11月 (6)
  • 2015年 10月 (5)
  • 2015年 09月 (4)
  • 2015年 08月 (8)
  • 2015年 07月 (5)
  • 2015年 06月 (3)
  • 2015年 05月 (7)
  • 2015年 04月 (8)
  • 2015年 03月 (12)
  • 2015年 02月 (8)
  • 2015年 01月 (4)
  • 2014年 12月 (5)
  • 2014年 11月 (5)
  • 2014年 10月 (7)
  • 2014年 09月 (4)
  • 2014年 08月 (7)
  • 2014年 07月 (6)
  • 2014年 06月 (4)
  • 2014年 05月 (12)
  • 2014年 04月 (9)
  • 2014年 03月 (6)
  • 2014年 02月 (6)
  • 2014年 01月 (8)
  • 2013年 12月 (7)
  • 2013年 11月 (10)
  • 2013年 10月 (10)
  • 2013年 09月 (9)
  • 2013年 08月 (11)
  • 2013年 07月 (10)
  • 2013年 06月 (9)
  • 2013年 05月 (15)
  • 2013年 04月 (11)
  • 2013年 03月 (5)
  • 2013年 02月 (7)
  • 2013年 01月 (6)
  • 2012年 12月 (9)
  • 2012年 11月 (10)
  • 2012年 10月 (10)
  • 2012年 09月 (4)
  • 2012年 08月 (2)
  • 2012年 07月 (7)
  • 2012年 06月 (13)
  • 2012年 05月 (13)
  • 2012年 04月 (15)
  • 2012年 03月 (4)
  • 2012年 02月 (12)
  • 2012年 01月 (9)
  • 2011年 12月 (5)
  • 2011年 11月 (13)
  • 2011年 10月 (2)
  • 2011年 09月 (2)
  • 2011年 08月 (1)
  • 2011年 06月 (1)
  • 2011年 05月 (4)
  • 2011年 04月 (10)
  • 2011年 03月 (8)
  • 2011年 02月 (11)
  • 2011年 01月 (14)
  • 2010年 12月 (14)
  • 2010年 11月 (17)
  • 2010年 10月 (17)
  • 2010年 09月 (19)
  • 2010年 08月 (22)
  • 2010年 07月 (18)
  • 2010年 06月 (16)
  • 2010年 05月 (19)
  • 2010年 04月 (15)
  • 2010年 03月 (22)
  • 2010年 02月 (18)
  • 2010年 01月 (18)
  • 2009年 06月 (2)
  • 2009年 04月 (1)
  • 2007年 12月 (10)
  • 2007年 11月 (7)
  • 2007年 10月 (9)
  • 2007年 09月 (4)
  • 2007年 07月 (5)
  • 2007年 06月 (11)
  • 2007年 05月 (6)
  • 2007年 04月 (4)
  • 2006年 01月 (20)
  • + ブックマーク
    + 最近のコメント
    + アクセスカウンター
    全体(since 2010.02.03.)
    今日… 昨日…