Pythonのオブジェクト

黄舟
リリース: 2017-01-19 17:16:31
オリジナル
1668 人が閲覧しました

オブジェクト: プログラムで使用されるすべての値はオブジェクトです。オブジェクトは内部プロパティとメソッドで構成されます。これらのメソッドは、以前にリスト型データを操作するときにすでに使用しました。出力結果:
37,25,34,23

dir() 関数は、オブジェクトで利用可能なメソッドをリストすることができ、インタラクティブな体験のためのツールです

data = [37,34];  
data.insert(1,25);   
data.append(23)  
print(data);
ログイン後にコピー

出力結果:
['__add__', '__class__', '__contains__ ' 、 ...'追加'、'クリア'、'コピー'、'カウント'、'拡張'、'インデックス'、'挿入'、'ポップ'、'削除'、'逆方向'、'並べ替え' ]

dir() 関数を使用してオブジェクトのメソッドを表示すると、アンダースコアで始まりアンダースコアで終わる多くの特別なメソッドがあることがわかります。これらのメソッドは、さまざまな操作を実装するために使用されます。
例:

dir(data)
ログイン後にコピー

+ Python の演算子は実際には上記で次の操作が実行されます:

data = data +[3,4,50];  
print(data);
ログイン後にコピー

注: 2 つのオブジェクトを追加できるかどうかは、まず対応するオブジェクトに __add__() メソッドがあるかどうかを確認する必要があります。そうであれば、オブジェクトが __add__() メソッドを持っている場合でも加算を使用できます。 Python の __add__ のようなマジック メソッドは、通常、 __add__ に対応する動作を定義します。 オブジェクト指向プログラミングでは、クラス objName が定義されます。 class: オブジェクトを定義するクラス objName: クラス名

data.__add__([3,4,5])
ログイン後にコピー

Stack クラスを定義するとき、構文 class Stack(object) は Stack をオブジェクトとして宣言します。そのため、Stack クラスはオブジェクトから継承します。 object これは、すべての Python 型の中でのルート型です。
メソッドは、クラス内の def 構文を使用して定義されます。
Self 変数: オブジェクトに関係するすべての操作は、self 変数を参照する必要があります。

スタックの使い方?

class Stack(object):  
    def __init__(self): #__init__ 构造器,当一个实例被创建的时候 调用的初始化方法  
        self.stack = [];  
    def push(self,object):  
        self.stack.append(object);  
    def pop(self):  
        return self.stack.pop();  
    def length(self):  
        return  len(self.stack);
ログイン後にコピー

出力結果
32
s = Stack();   
s.push("Dave");  
s.push([3,4,5,6]);  
s.push(32);  
x = s.pop();
ログイン後にコピー

出力結果:

[3, 4, 5, 6]
append() メソッド: このメソッドは Python のリストの章で紹介され、リストの最後に使用されます。 element

pop() メソッド: リストの末尾から要素を削除し、要素を返すために使用されます

len() 関数: リスト内の要素の数を返します
Stack クラスは、実際にはスタックを実装するための新しいオブジェクトを作成しますただし、スタックは組み込みのリストオブジェクトとほぼ同じであるため、リストを直接継承してメソッドを追加できます

y = s.pop();
ログイン後にコピー

リストオブジェクトを継承する場合、リストオブジェクトのメソッドStackオブジェクトを直接使用できます

class Stack(list):  
    def push(self,object):  
        self.append(object);
ログイン後にコピー

出力結果:

[66, 65, 64, 63]

s = Stack();  
s.push(66);   
s.push(65);   
s.push(64);   
s.push(63);
ログイン後にコピー

出力結果:

[63, 64, 65, 66]
クラス内に静的メソッドを作成するには?

通常、クラスで定義されたすべてのメソッドはクラスのインスタンス (作成されたオブジェクト) でのみ使用されますが、静的メソッドも定義できます (関数のように呼び出すことができます)

s.reverse();#此方法 用于反转列表中元素的顺序
ログイン後にコピー

出力結果:
ok
@staticmethod はデコレータ (デコレータ ) は実際には関数です。 myCheck 関数を実行する前にデコレータの staticmethod 関数を実行する場合、まず myCheck メソッドを実行し、それを静的メソッドとして定義します

概要:

1. dir() メソッド: のすべてのメソッド。オブジェクトを表示できます
2. マジック メソッド: 二重アンダースコアで開始および終了するメソッド。このクラス メソッドは、次のようなさまざまな動作を定義します。 __add__() メソッドは + 操作を定義します
3、Python でクラスを定義する方法とオブジェクトの継承方法。 、例: class MyObject(object)

4, @ staticmethod: デコレーターの使用: メソッドを静的メソッドとして定義します

上記は Python のオブジェクトの内容です。さらに関連する内容については、PHP に注目してください。中国語のウェブサイト (www.php.cn)!

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