質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.31%
Python 3.x

Python 3はPythonプログラミング言語の最新バージョンであり、2008年12月3日にリリースされました。

Python

Pythonは、コードの読みやすさが特徴的なプログラミング言語の1つです。 強い型付け、動的型付けに対応しており、後方互換性がないバージョン2系とバージョン3系が使用されています。 商用製品の開発にも無料で使用でき、OSだけでなく仮想環境にも対応。Unicodeによる文字列操作をサポートしているため、日本語処理も標準で可能です。

Q&A

1回答

2350閲覧

Pythonには参照(alias)という変数をどうやって定義するのでしょうか

inception

総合スコア14

Python 3.x

Python 3はPythonプログラミング言語の最新バージョンであり、2008年12月3日にリリースされました。

Python

Pythonは、コードの読みやすさが特徴的なプログラミング言語の1つです。 強い型付け、動的型付けに対応しており、後方互換性がないバージョン2系とバージョン3系が使用されています。 商用製品の開発にも無料で使用でき、OSだけでなく仮想環境にも対応。Unicodeによる文字列操作をサポートしているため、日本語処理も標準で可能です。

0グッド

2クリップ

投稿2023/01/12 08:21

C++の場合、
int& b= a
で変数aの別名bを簡単に定義できますが、Pythonの場合どう定義しますか。

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

can110

2023/01/12 09:14

> 参照(alias)という変数 と記載されていますが、提示例をみるかぎり、ここでいう参照とは「reference(variables)」でしょうか? それともtypedefのようなC++における「alias」というものについてでしょうか?
退会済みユーザー

退会済みユーザー

2023/01/12 11:44

別名=aliasというのはそうなんでしょうけど、C++だとtypedefもありますが、C++11以降aliasと言えばどちらかというとusingですよ。 https://learn.microsoft.com/ja-jp/cpp/cpp/aliases-and-typedefs-cpp 質問者さんに分かりやすいのはtypedefかもしれませんね。 いずれにしても例示されているのは普通の参照なので、参照なのかなぁ…
inception

2023/01/12 17:39 編集

お返答ありがとうございます。 本質的に、下記のような事を実現したいのです。 例えば、C++流で表現すれば 身長= 100 int & 高さ = 身長 すると、変数「高さ」と「身長」の中身はいつも一緒になります。 片一方が変更したらもう一方も同じ変更します。
退会済みユーザー

退会済みユーザー

2023/01/12 18:47 編集

property()を使って手間をかけると、classの変数だけはそれっぽい書き方が出来るかも class Aliased:   def __init__(self):     self.身長 = 100   @property   def 高さ(self):     return self.身長   @高さ.setter   def 高さ(self, value):     self.身長 = value hoge = Aliased() print(hoge.身長) # 100 hoge.高さ=105 print(hoge.身長) # 105 ※行頭の空白は全角空白なので注意 出典: https://stackoverflow.com/questions/11049942/how-do-i-create-an-alias-for-a-variable-in-python
inception

2023/01/13 20:58

具体コードで示して下さって、本当にありがとうございます。 良い勉強になりました。 これはPythonにとって精一杯の解決法かなと思います。 int & 高さ = 身長 (C++) 👆似た表現をPython言語に至急追加願いたい。
退会済みユーザー

退会済みユーザー

2023/01/13 21:07

個人的にはこんなどうでもいい機能不要だと思います。 「至急追加願いたい」ならchatでrequestする方法でも聞いたらいいかと思います。 https://python-forum.io/misc.php?page=chat
inception

2023/01/14 05:01 編集

情報ありがとうございます❣ メンテンス上、実装では名前の短縮化が必要になる場合が多いのではと思います。 信号処理や数学式(微積分変数、matrix要素)を表現(実装)するには名前が長くなると理解不可能になるか、数学上の意味から掛け離れてしまうので、コーディングする時に面倒くさく、ミスを起こし易いのです。 少なくとも自分にとって。 逆に、APPの立場からすれば、APP上の具体意味を表すために、変数名を少々長い名付けをする事で意味自明を図れます。 なので、暫く変数名変更が必要ですが、中身一緒であるのをキープしなければならなません。 あくまで個人見解です。
guest

回答1

0

普通に代入で。

Python

1a = [1,2,3] 2b = a 3c = a.copy() 4b[0] = 0 5print(a) #=> [0, 2, 3] 6print(b) #=> [0, 2, 3] 7print(c) #=> [1, 2, 3]

コピー(同じ内容で別物を作る)の方が面倒です。

投稿2023/01/12 08:39

編集2023/01/12 08:43
otn

総合スコア86295

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

otn

2023/01/12 09:10 編集

質問を誤解していたかも知れません。 上記は、「オブジェクトに別名を付ける」でした。 「変数名aに別名bを付ける」というのは、変数の中に物が入っているわけではないので、難しい(無理?)と思います。
inception

2023/01/12 17:42

お返答ありがとうございます。 本質的に、下記のような事を実現したいのです。 例えば、C++流で表現すれば 身長= 100 int & 高さ = 身長 すると、変数「高さ」と「身長」の中身はいつも一緒になります。 片一方が変更したらもう一方も同じ変更します。 ご提示の例だと a = [1,2,3] b = a で良いですが、 a = 1 b = a の場合に通用しませんね。
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

まだベストアンサーが選ばれていません

会員登録して回答してみよう

アカウントをお持ちの方は

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.31%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問