クラスインスタンス内から自分のクラス名を取得しようと思うと、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ランキング
-
1、Rstudioで回帰直線を求める...
-
ビーリアルのユーザー名を変え...
-
(再質問)エクセルのマクロボ...
-
C言語の入力した文字を反転させ...
-
情報の表現。()内がどうしても...
-
pandasでsqlite3にテーブル作成...
-
教えてください
-
Ruby on railsをrails sで立ち...
-
rubyでじゃんけんのプログラム...
-
Accessで文字列のバイト数読み込み
-
パソコンのスクリーンセーバー...
-
VBA メモ帳の上書き保存がしたい
-
エクセルのマクロでの積分
-
メール一括送信VBAのメーラーの...
-
ruby:selfについて
-
パイソンエラーについて
-
pythonエラー
-
英数字を含む文字列(0-9,A-Z)...
-
VBScriptでExcel(2019)上のデー...
-
100万件越えCSVから条件を満た...
マンスリーランキングこのカテゴリの人気マンスリー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】クラスの継承、互換...
おすすめ情報