検索
ホームページバックエンド開発Python チュートリアルPython オブジェクト指向のビデオ素材共有

オブジェクト指向は、現在のプログラミング言語において非常に主流の考え方です。 Python はオブジェクト指向の非常に優れた実装を備えています。同時に、Python の柔軟な構文を利用して、いくつかの優れたオブジェクト指向機能を実装できます。

Python は最初からオブジェクト指向言語であり、そのため、Python でクラスやオブジェクトを作成するのは簡単です。この章では、Python によるオブジェクト指向プログラミングについて詳しく紹介します。

これまでオブジェクト指向プログラミング言語に触れたことがない場合は、まずオブジェクト指向言語のいくつかの基本的な機能を理解し、頭の中でオブジェクト指向の基本的な概念を形成する必要があるかもしれません。 Python でオブジェクト指向プログラミングをより簡単に学習できます。

次に、オブジェクト指向の基本的な特徴をいくつか簡単に理解しましょう。

Python オブジェクト指向のビデオ素材共有

オブジェクト指向について学ぶのが難しいのは、概念やその他の知識点ではなく、オブジェクト指向の考え方です。

オブジェクト指向の基本的な考え方は、カプセル化、継承、ポリモーフィズムです。

最初は継承です:

クラスを定義します:

コードは次のとおりです:

class Bird(object):  
    have_feather = True  
    way_of_reproduction  = 'egg'

このクラスを呼び出します:

コードは次のとおりです:

summer = Bird()  
print summer.way_of_reproduction


Javaとは異なり、Pythonはnew toを必要としません。クラスをインスタンス化します。

同様に、Python クラスは以下のメソッドを定義できます:

コードは次のとおりです:

class Bird(object):      
    have_feather = True      
    way_of_reproduction = 'egg'      
      
    def say(self, word='hi hi'):  
              print 'i say :' + word

すべてのクラス関数には少なくとも 1 つのパラメーターが必要であり、このパラメーターは self である必要があることに注意してください。

クラス外の関数にはこの制限はありません。

コードは次のとおりです:

chk = Chicken()  
print chk.have_feather  
print chk.sat('hello')

__init__()メソッド

__init__()は特別なメソッドです。 Python には特別なメソッドがいくつかあり、Python はそれらを特別な方法で処理します。特殊なメソッド名は、前後に 2 つのアンダースコアがあることが特徴です。

__init__() メソッドの特別な点は、このメソッドをクラスで定義すると、このクラスに基づいてオブジェクトを作成すると、Python が自動的にこのメソッドを呼び出すことです (このプロセスは初期化とも呼ばれます)。

例:

コードは次のとおりです:

class happyBird(Bird):  
    def __init__(self,more_words):  
        print 'We are happy birds.',more_words  
  
hb = happyBird('Happy,Happy!')

親クラスメソッドのオーバーロード:

コードは次のとおりです:

class Hello(object):  
    name = 'hello'  
      
    def __init__(self):  
        self.name='my name is hello'  
      
    #类中的参数必须带有self参数  
    def sayhi(self):  
        print 'hi you'  
  
class World(Hello):   
    def __init__(self):  
        #这里访问的是父类初始化的变量名  
        print 'before:',Hello.name   
        super(World,self).__init__()    
        #由于调用了父类的初始化构造函数,继承了父类的变量的改变  
        print 'after:',self.name  
          
        #近似于方法重载  
    def sayhi(self,word='baby'):  
        #调用父类sayhi方法  
        super(World,self).sayhi()  
        print 'hi '+word  
              
    def sayWorld(self):  
        print 'hi,hello world'  
          
if __name__ == '__main__':  
    c = World()  
    c.sayhi()  
    c.sayWorld()

また、Pythonでは多重継承が可能ですが、これは非常に危険です。安易に使用しないことをお勧めします。

Python のポリモーフィズムについては、JavaScript と同様に、インターフェイスや型変換を使用せずに、オブジェクトのプロパティに直接アクセスできます。

型判定には、ある関数のサブクラスかどうかを判定する type() 関数と isinstance() 関数があります。

次のようにコードをコピーします:

isinstance(object, classinfo)


インスタンスがこのクラスであるか、オブジェクトが変数であるかを判断します

classinfoは型(tuple、dict、int、float)です
どちらかを判断します変数はこの型です

コードは次のとおりです:

class objA:   
pass   
  
A = objA()   
B = 'a','v'   
C = 'a string'   
  
print isinstance(A, objA)   
print isinstance(B, tuple)   
print isinstance(C, basestring)

出力結果:
True
True
True

以上がPython オブジェクト指向のビデオ素材共有の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
numpyアレイは、アレイモジュールを使用して作成された配列とどのように異なりますか?numpyアレイは、アレイモジュールを使用して作成された配列とどのように異なりますか?Apr 24, 2025 pm 03:53 PM

numpyarraysarasarebetterfornumeroperations andmulti-dimensionaldata、whilethearraymoduleissuitable forbasic、1)numpyexcelsinperformance and forlargedatasentassandcomplexoperations.2)thearraymuremememory-effictientivearientfa

Numpyアレイの使用は、Pythonで配列モジュール配列の使用と比較してどのように比較されますか?Numpyアレイの使用は、Pythonで配列モジュール配列の使用と比較してどのように比較されますか?Apr 24, 2025 pm 03:49 PM

NumPyArraySareBetterforHeavyNumericalComputing、whilethearrayarayismoreSuitableformemory-constrainedprojectswithsimpledatatypes.1)numpyarraysofferarays andatiledance andpeperancedatasandatassandcomplexoperations.2)thearraymoduleisuleiseightweightandmemememe-ef

CTypesモジュールは、Pythonの配列にどのように関連していますか?CTypesモジュールは、Pythonの配列にどのように関連していますか?Apr 24, 2025 pm 03:45 PM

ctypesallowsinging andmanipulatingc-stylearraysinpython.1)usectypestointerfacewithclibrariesforperformance.2)createc-stylearraysfornumericalcomputations.3)passarraystocfunctions foreffientientoperations.how、how、becuutiousmorymanagemation、performanceo

Pythonのコンテキストで「配列」と「リスト」を定義します。Pythonのコンテキストで「配列」と「リスト」を定義します。Apr 24, 2025 pm 03:41 PM

Inpython、「リスト」は、「リスト」、自由主義的なもの、samememory効率が高く、均質な偶然の瞬間の想起された「アレイ」の「アレイ」の「アレイ」の均質な偶発的な想起されたものです

Pythonリストは可変ですか、それとも不変ですか? Pythonアレイはどうですか?Pythonリストは可変ですか、それとも不変ですか? Pythonアレイはどうですか?Apr 24, 2025 pm 03:37 PM

pythonlistsandarraysaraybothmutable.1)listsareflexibleandsupportheTeterdatabutarlessmemory-efficient.2)Arraysaremorememory-efficientiant forhomogeneousdative、ressivelessatile、ressing comerttytytypecodeusageodoavoiderorors。

Python vs. C:重要な違​​いを理解しますPython vs. C:重要な違​​いを理解しますApr 21, 2025 am 12:18 AM

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

Python vs. C:プロジェクトのためにどの言語を選択しますか?Python vs. C:プロジェクトのためにどの言語を選択しますか?Apr 21, 2025 am 12:17 AM

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

Pythonの目標に到達する:毎日2時間のパワーPythonの目標に到達する:毎日2時間のパワーApr 20, 2025 am 12:21 AM

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

See all articles

ホットAIツール

Undresser.AI Undress

Undresser.AI Undress

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

AI Clothes Remover

AI Clothes Remover

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

Undress AI Tool

Undress AI Tool

脱衣画像を無料で

Clothoff.io

Clothoff.io

AI衣類リムーバー

Video Face Swap

Video Face Swap

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

ホットツール

MantisBT

MantisBT

Mantis は、製品の欠陥追跡を支援するために設計された、導入が簡単な Web ベースの欠陥追跡ツールです。 PHP、MySQL、Web サーバーが必要です。デモおよびホスティング サービスをチェックしてください。

ゼンドスタジオ 13.0.1

ゼンドスタジオ 13.0.1

強力な PHP 統合開発環境

ZendStudio 13.5.1 Mac

ZendStudio 13.5.1 Mac

強力な PHP 統合開発環境

SublimeText3 中国語版

SublimeText3 中国語版

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

AtomエディタMac版ダウンロード

AtomエディタMac版ダウンロード

最も人気のあるオープンソースエディター