Python学習の旅

巴扎黑
リリース: 2017-06-23 15:53:48
オリジナル
1219 人が閲覧しました

この章では、著者は Python データ モデル、主に Python のいくつかの特別なメソッドを簡単に紹介します。たとえば、__len__、__getitem__ などです。トランプ プログラムを使用して、これらのメソッドを説明します

まず、タプルとネームタプルの違いを紹介します:

ネームタプルはタプルに似たデータ型です。インデックスを使用してデータにアクセスできることに加えて、便利なプロパティ名を使用したデータへのアクセスもサポートします。

従来のタプルアクセスは以下の通りです。各要素へのアクセスはインデックスを介して検索する必要があります。この発見の方法は非常に直感的ではありません

rreeeはnametupleを使用して構築します。 .py"、17 行目、

t1.age+=1

AttributeError: 属性を設定できません

この本のトランプの例を見てみましょう。コードは次のとおりです。 :

tup1=(,,)
tup1[1]
ログイン後にコピー
tup2=namedtuple(,[,,])
t1=tup2(,,)
t1
t1.age
t1.height
t1.name
ログイン後にコピー

まず、カードタプル Card が定義され、rank はカード番号を表し、suit はカードのスートを表します。次に、FrenchDeck はまずランクとスーツの具体的な意味を定義します。 __init__ で self._cards を初期化します。

__len__はself._cardsの長さをフィードバックします。 __getitem__ は特定のカード値を返します。

結果は次のようになります。カードの長さは 52 で、deck[1] は Card(rank='3',suit='spades') です

実際に len(deck) であることがわかります。 __len__ メソッドを呼び出します。 Deck[1] は __getitem__ を呼び出します。

得到结果如下,namedtupel中tuple2是类型名,name,age,height是属性名字
ログイン後にコピー
从上面的访问可以看到,直接用t1.age的方法访问更加直观。当然也可以用索引比如t1[0]的方法来访问
ログイン後にコピー
結果を取得します:

Card(rank='9', suit='hearts')

ベクトル演算に関する別の例を見てみましょう。たとえば、ベクトル 1 Vector1(1,2) とベクトル 2 Vector2(3,4) があります。この場合、vector1+vector2 の結果は (4,6) になるはずです。 Vector1 と Vector2 は両方ともベクトルですが、操作を実装するにはどうすればよいですか?メソッドは __add__、__mul__

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

t t1:
    t
ログイン後にコピー
和元组一样,namedtupel中的元素也是不可变更的。如果执行t1.age+=1。将会提示无法设置元素
ログイン後にコピー

演算結果は次のとおりです:

ここで、__add__、__mul__、__abs__ はそれぞれベクトル加算、乗算、および剰余演算を実装します。

__repr__ メソッドについて言及する価値があります。このメソッドは、オブジェクトを印刷する必要があるときに呼び出されます。たとえば、vector(1,2) を出力すると、vector(1,2) が得られます。それ以外の場合、それはオブジェクトを表す文字列です: __repr__ と __str__ の関数は似ています

りー

以上がPython学習の旅の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

関連ラベル:
ソース:php.cn
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
最新の問題
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート