![](http://oshiete.xgoo.jp/images/v2/pc/qa/question_title.png?5a7ff87)
クラスインスタンス内から自分のクラス名を取得しようと思うと、self.class.nameで取得できますが、type.nameでも取得できます。
しかし、typeは非推奨メソッドとなっているため、警告が出て、このままでは使用することができません。
素直にself.classを使えばいいのかもしれませんが、selfのワンクッションがどうにも気に入りません。
スマートな記述方法あったら教えて下さい。
# self.class.nameを使用する場合
class MyClass
def print_classname
puts self.class.name
# puts class.name これはエラー
end
end
# type.nameを使用する場合
class MyClass2
def print_classname
puts type.name # これはdeprecatedの記述で警告が出る
end
end
No.1ベストアンサー
- 回答日時:
self を書きたくないということなら、
alias :xclass :class
しておいて、
xclass.name
するくらいしかないと思います。スマートとは思いませんけど。
逆に、インスタンスメソッド定義の中で、class以外のメソッド呼び出しの時もselfを省略しないで書くことにすれば、全部統一が取れます。
この回答への補足
補足・・(うまく伝わっていないかもしれないので念のため)
考慮から外れていたというのは、思いつきませんでした、ということです。
つまりありがたいお答えですありがとうございますということです。
ありがとうございます。
aliasは考慮から外れていました。
self.を書きたくないのではなくて、type書くとself.が必要ないのに、classで書く時はself.が必要というのが無駄だなと思ったからです。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- JavaScript jqueryを使ったスムーススクロールのコードを書いたのですが、HTMLコード内にある、a butt 2 2022/04/14 10:59
- その他(プログラミング・Web制作) Pythonで会員サイトの自動ログイン ID Nameがない 1 2022/12/16 02:09
- JavaScript ①入力フォーム→②確認表示画面→③送信完了画面のコードを書いているのです、 入力フォームから受け取っ 2 2022/05/10 16:45
- JavaScript sessionStorageを調べています。 1 2023/06/20 12:41
- HTML・CSS CSSが効かずどのように指定すれば良いか分からないのでアドバイスお願い致します 2 2023/06/07 12:25
- HTML・CSS ボタンをクリックした時に、入力フォームのすぐ下部に、「入力欄が空白です」というテキストメッセージが表 1 2022/04/27 16:25
- その他(プログラミング・Web制作) pythonのプログラムについての質問です。 1 2023/05/26 10:31
- HTML・CSS CSS のみのタブ切り替えについて 1 2023/01/11 16:47
- JavaScript Javascript初心者|jQueryの.val()で値を取得し複数の要素を連結させる方法知りたい 2 2022/06/02 12:06
- その他(プログラミング・Web制作) Pythonで複数のメソッドをまとめて管理する方法について 1 2023/03/30 00:01
関連するカテゴリからQ&Aを探す
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
テンプレートの特殊化でコンパ...
-
構造体を使ったプログラム
-
プログラミングRubyについての...
-
下線部の答え教えてください こ...
-
get() と find() の違いについて
-
エラー「メソッドまたはデータ...
-
教えてください。vb5.0
-
try ~ catch構文が使えない
-
Rubyの超初心者です。「戻り値r...
-
【引数と戻り値の違い】 はじめ...
-
Csvファイルの最終行を取得する...
-
クエリーストリングとは?
-
メソッド定義の構文のdefって
-
クラスメソッドのインスタンス...
-
「arg」は何の略?
-
CloseとQuitについて
-
実行時エラー450:引数の数が一...
-
fortranを用いた行列の掛け算に...
-
railsチュートリアル5章の演習
-
エクセルVBA オートフィルタで...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
pythonのerrorコード
-
No route matches [GET] "/post...
-
パイソンのクラス
-
Rubyについて質問です
-
クラス名やモジュール名の競合...
-
What class are you in? には何...
-
HSTLやSSTL等のI/Oピン
-
テンプレートの特殊化でコンパ...
-
Ruby ハッシュ継承クラス、作成...
-
変数の隠蔽とは?
-
redirect先でredirect元の変数...
-
Rubyの質問です
-
あってますか?
-
class roomとclassroom どちら...
-
classのdelete
-
PostScript言語で定積分の計算
-
Ruby
-
インスタンス内から自分のクラ...
-
プログラミングRubyについての...
-
【delphi】クラスの継承、互換...
おすすめ情報