Python ではすべてのものをオブジェクトとして見ることができます。各オブジェクトには独自の ID、タイプ、値があります。
- id: オブジェクトが作成されるとき、その ID は変更されません。ここでの ID は実際にはメモリ内のオブジェクトのアドレスです。メモリ内のオブジェクトを表示するには id() を使用できます。 。
- type: id と同様、オブジェクトが作成されると、そのタイプは変更できません。タイプによって、オブジェクトがサポートできる操作が決まります。
- value: オブジェクトの値
オブジェクトが変更可能かどうかは、値が変更をサポートしているかどうかによって決まります。
関連する学習の推奨事項: Python ビデオ チュートリアル
不変オブジェクト
一般的な不変オブジェクト (不変)オブジェクト):
- 数値: int、float、complex
- string
- tuple
- frozenset: 別のタイプのセット
例を通して感じてみましょう
例
>>> x=1 >>> y=x >>> id(x)==id(y) True >>> id(1)==id(y) True
ここでは 2 つの int オブジェクトが作成され、x、y が同じオブジェクトを指すようにします。 、そして、x 1
>>>x=x+1
この時点で、x の id 値は、y の id および 1 の id と同じままですか?
>>> x=x+1 >>> id(x)==id(y) False >>> id(x)==id(1) False >>> id(1)==id(y) True
結果から、x が指すオブジェクトが変更されたが、1 は変更されていないことを確認するのは難しくありません。これは不変オブジェクトです。不変オブジェクトの場合、一度作成すると変更することはできません。
注: 不変性は絶対的な不変性と厳密に等価ではありません
>>> a=([1],2,3) >>> id(a) 4338862696 >>> id(a[0]) 4338949128 >>> a[0][0]=0 >>> id(a) 4338862696 >>> id(a[0]) 4338949128
上の例から、a[0] の値を変更したが、その ID には影響しなかったことが簡単にわかります。価値。不変コンテナ オブジェクトに変更可能オブジェクトへの参照が含まれている場合、後者の値が変更されると、前者の値も変更されますが、コンテナの ID 値は変更されないため、コンテナは不変オブジェクトのままです。
# 可変オブジェクト
#共通の可変オブジェクト:- list
- dict
- set
Example
>>> c = [1,2,3] >>> b = c >>> id(b)==id(c) True2 つのリスト オブジェクトを作成し、c、d が同じオブジェクトを指すようにします。次に、c
c[0]=4を変更しようとします。このとき、2 つのオブジェクトの ID 値が一致しているかどうかを確認します。
>>> id(c)==id(b) True変更後も、c、d は同じオブジェクトを指しています。したがって、変数オブジェクトの場合、値を変更してもその id
関数パラメータ
可変オブジェクトと不変オブジェクトの場合オブジェクトの場合、関数がパラメータとして渡されると動作が異なります。例
eg0
def update_list(nums_list): print(f'2 id:{id(nums_list)}') nums_list += [10] print(f'3 id:{id(nums_list)}') number_list = [5, 6] print(f'1:{number_list}, id:{id(number_list)}') update_list(number_list) print(f'4:{number_list}, id:{id(number_list)}')Look結果 #1:[5, 6], id:4457707912
2 id:4457707912eg13 id:4457707912
別の例を見てみる
4:[5, 6, 10], id:4457707912
def add_num(number):
print(f'2:{id(number)}')
number += 1
print(f'3:{id(number)}')
num = 1
print(f'1:{num}, id:{id(num)}')
add_num(num)
print(f'4:{num}, id:{id(num)}')
結果を見てみる
2 id:43437684163 id:4343768448
他の記事では、上記の eg0 は pass by と呼ばれています。 eg1 は値渡しと呼ばれます。ただし、公式ドキュメントにはこれら 2 つの用語に関連する内容が見つからなかったか、この方法は上記 2 つのいずれでもありませんでした。
4:1, id:4343768416
ここでの重要なポイントは次のとおりです:
可変オブジェクトの場合、関数内の値を変更してもオブジェクトは変更されますが、不変オブジェクトの場合、関数内の値を変更してもオブジェクトは変更されません。影響力以上がPython の可変オブジェクトと不変オブジェクトの詳細な分析の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

PythonとCにはそれぞれ独自の利点があり、選択はプロジェクトの要件に基づいている必要があります。 1)Pythonは、簡潔な構文と動的タイピングのため、迅速な開発とデータ処理に適しています。 2)Cは、静的なタイピングと手動メモリ管理により、高性能およびシステムプログラミングに適しています。

PythonまたはCの選択は、プロジェクトの要件に依存します。1)迅速な開発、データ処理、およびプロトタイプ設計が必要な場合は、Pythonを選択します。 2)高性能、低レイテンシ、および緊密なハードウェアコントロールが必要な場合は、Cを選択します。

毎日2時間のPython学習を投資することで、プログラミングスキルを効果的に改善できます。 1.新しい知識を学ぶ:ドキュメントを読むか、チュートリアルを見る。 2。練習:コードと完全な演習を書きます。 3。レビュー:学んだコンテンツを統合します。 4。プロジェクトの実践:実際のプロジェクトで学んだことを適用します。このような構造化された学習計画は、Pythonを体系的にマスターし、キャリア目標を達成するのに役立ちます。

2時間以内にPythonを効率的に学習する方法は次のとおりです。1。基本的な知識を確認し、Pythonのインストールと基本的な構文に精通していることを確認します。 2。変数、リスト、関数など、Pythonのコア概念を理解します。 3.例を使用して、基本的および高度な使用をマスターします。 4.一般的なエラーとデバッグテクニックを学習します。 5.リストの概念を使用したり、PEP8スタイルガイドに従ったりするなど、パフォーマンスの最適化とベストプラクティスを適用します。

Pythonは初心者やデータサイエンスに適しており、Cはシステムプログラミングとゲーム開発に適しています。 1. Pythonはシンプルで使いやすく、データサイエンスやWeb開発に適しています。 2.Cは、ゲーム開発とシステムプログラミングに適した、高性能と制御を提供します。選択は、プロジェクトのニーズと個人的な関心に基づいている必要があります。

Pythonはデータサイエンスと迅速な発展により適していますが、Cは高性能およびシステムプログラミングにより適しています。 1. Python構文は簡潔で学習しやすく、データ処理と科学的コンピューティングに適しています。 2.Cには複雑な構文がありますが、優れたパフォーマンスがあり、ゲーム開発とシステムプログラミングでよく使用されます。

Pythonを学ぶために1日2時間投資することは可能です。 1.新しい知識を学ぶ:リストや辞書など、1時間で新しい概念を学びます。 2。練習と練習:1時間を使用して、小さなプログラムを書くなどのプログラミング演習を実行します。合理的な計画と忍耐力を通じて、Pythonのコアコンセプトを短時間で習得できます。

Pythonは学習と使用が簡単ですが、Cはより強力ですが複雑です。 1。Python構文は簡潔で初心者に適しています。動的なタイピングと自動メモリ管理により、使いやすくなりますが、ランタイムエラーを引き起こす可能性があります。 2.Cは、高性能アプリケーションに適した低レベルの制御と高度な機能を提供しますが、学習しきい値が高く、手動メモリとタイプの安全管理が必要です。


ホットAIツール

Undresser.AI Undress
リアルなヌード写真を作成する AI 搭載アプリ

AI Clothes Remover
写真から衣服を削除するオンライン AI ツール。

Undress AI Tool
脱衣画像を無料で

Clothoff.io
AI衣類リムーバー

Video Face Swap
完全無料の AI 顔交換ツールを使用して、あらゆるビデオの顔を簡単に交換できます。

人気の記事

ホットツール

SublimeText3 英語版
推奨: Win バージョン、コードプロンプトをサポート!

メモ帳++7.3.1
使いやすく無料のコードエディター

SublimeText3 中国語版
中国語版、とても使いやすい

mPDF
mPDF は、UTF-8 でエンコードされた HTML から PDF ファイルを生成できる PHP ライブラリです。オリジナルの作者である Ian Back は、Web サイトから「オンザフライ」で PDF ファイルを出力し、さまざまな言語を処理するために mPDF を作成しました。 HTML2FPDF などのオリジナルのスクリプトよりも遅く、Unicode フォントを使用すると生成されるファイルが大きくなりますが、CSS スタイルなどをサポートし、多くの機能強化が施されています。 RTL (アラビア語とヘブライ語) や CJK (中国語、日本語、韓国語) を含むほぼすべての言語をサポートします。ネストされたブロックレベル要素 (P、DIV など) をサポートします。

ゼンドスタジオ 13.0.1
強力な PHP 統合開発環境
