
A 回答 (3件)
- 最新から表示
- 回答順に表示
No.3
- 回答日時:
True==1と1=1.0は別の理由と思います。
前者はboolをintのサブクラスとした仕様のためでしょう。完全に別物とすることもできるはずですが、C実装からの流れですかね。
後者は数としての自然な埋め込みなので妥当と思います。この型を区別するとスクリプト言語としてかなり扱いにくくなるでしょう。
Pythonというとオブジェクトの型はしっかりしていますが、変数には型がないのですよね。アノテーションはあっても碌にチェックされないし、アノテーションの文法が頻繁に変わって使いにくい。
せめて記法は早いところ安定してほしい。
No.2
- 回答日時:
それくらいの緩い言語仕様が便利と持って作ったか、細かな部分を詰めずに作った結果がそうなのか・・・でしょう。
OSやデータベース管理システムといった基本ソフトウェアや大規模な基幹系の業務システムを作る言語ではなく、コンピューターを情報整理や分析の道具として使う研究者などが思いついたことをパパッとプログラムにでき、他の人が書いたプログラムソースの理解も容易で自分のプログラムに取り込むなどして徐々に大きなシステムにしていきやすい・・・といった取り回しのしやすさ重視して出来た言語のようですから、それくらいの緩さが逆に便利なのだと思います。
参考まで。
回答ありがとうございます。
>それくらいの緩い言語仕様が便利と持って作ったか、
>細かな部分を詰めずに作った結果がそうなのか
私はそうは思いません。Javascriptなどはゆるゆるで、
時々思いもよらぬ型変換動きに悩まされることが有りますが
pythonは比較的型に厳格だと思います。
基本暗黙の型変換は整数型から浮動小数点型など
常識的なもの以外行いませんから・・・
ただ、 bool 型に関しては、浮いているというか、
少々不思議な仕様になっていると思います。
1 == 1.0 や hash(1) == hash(1.0) は一つの考え方だなと
一応納得はしているのですが
bool が int のサブクラスで
1 == True
hash(1) == hash(True)
isInstance(True, int)
が全て True なのには流石に違和感が有ります。
なんでこんなクラス構成にしたのでしょう?
解って使っていれば困らないのですが、気色悪いです。
No.1
- 回答日時:
元々大規模なシステム開発向けではなく、スクリプト用の言語だったという理由があります。
その点ではJavaScriptに似ています。
後に型定義やアノテーションが加わって曖昧さを抑える工夫をしてますが、根本的な解決とは言えないでしょう。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- C言語・C++・C# C#の質問 4 2021/10/19 10:11
- その他(プログラミング・Web制作) ラズパイでno module named zbar 3 2021/12/12 08:04
- 英語 英語の「un」と「not」の使い分けがわかりません。 例) 「un true」 「not alone 1 2021/11/19 23:57
- PHP 「ソースコードは 左~右へと読み込まれる」この場合の説明として 3 2021/11/14 05:31
- 日本語 日本語タイトルの頭に英単語がある場合/頭文字は大文字? 1 2021/12/26 22:12
- Visual Basic(VBA) VBAでシートの保護をかける際に「書式設定の変更」を有効にする 1 2023/04/17 18:18
- Visual Basic(VBA) 転記先VBA 一致しているセルがコピーされない 5 2021/11/15 17:23
- Visual Basic(VBA) vbaでセルに入力したときに,その横にあるセルを保護し入力不可にするマクロを作りたいです。 2 2022/04/24 20:59
- 計算機科学 pythonの この問題が分かりません。 y は100以下の数で2で割っても3で割っても割り切れる数 1 2023/10/11 22:14
- Excel(エクセル) VBA Scripting.Dictionary 連想配列 複数参照する方法 2 2021/12/17 01:52
関連するカテゴリからQ&Aを探す
おすすめ情報
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
チェックデジットについて
-
列挙型と連想配列の違いを教え...
-
ハッシュ検索はなぜ速い
-
文字列を変数名として扱う方法
-
ハッシュ値によるファイルの同...
-
ハッシュ値が一致したデータは...
-
Perlは戻り値で、ハッシュや配...
-
まったく同じファイルのハッシ...
-
ハッシュとツリー構造
-
短いハッシュの作り方
-
*(アスタリスク)の意味
-
アンカークリックで2ヶ所のリ...
-
一意(ユニーク)かつ、ソート...
-
Perl初心者ですが
-
英語でのシャープとコメの呼び...
-
VBAにハッシュ関数はないのです...
-
Perlのサブルーチンの引数に配...
-
rubyであるサイトのデータを自...
-
サブルーチンの引数としてハッ...
-
ハッシュにおける値の取り出し
おすすめ情報