ホームページ >バックエンド開発 >Python チュートリアル >__slots__ は Python で何ができるのでしょうか? (分析例)

__slots__ は Python で何ができるのでしょうか? (分析例)

乌拉乌拉~
乌拉乌拉~オリジナル
2018-08-22 17:06:531333ブラウズ

この記事では、python__slots__ に関する関連知識について学びましょう。友達の中には、Python プログラミング言語に触れたばかりで、この側面について特別に理解していない人もいるかもしれません。次の記事で、紹介させていただきますPython__slots__ に関する関連知識を学びましょう。

インスタンスのプロパティを制限したい場合はどうすればよいでしょうか?たとえば、名前と年齢の属性のみが Student インスタンスに追加できます。

制限の目的を達成するために、Python ではクラスを定義するときに特別な __slots__ 変数を定義して、クラス インスタンスに追加できる属性を制限できます。試してみます Try:

class Student(object):
    __slots__ = ('name', 'age') # 用tuple定义允许绑定的属性名称

'score' が __slots__ に配置されていないため、スコア属性をバインドできません。スコアをバインドしようとすると、AttributeError が発生します。

__slots__ を使用する場合、__slots__ で定義された属性は現在のクラス インスタンスにのみ影響し、継承されたサブクラスには影響しないことに注意してください。

>>> s = Student() # 创建新的实例
>>> s.name = 'Michael' # 绑定属性'name'
>>> s.age = 25 # 绑定属性'age'
>>> s.score = 99 # 绑定属性'score'
Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
AttributeError: &#39;Student&#39; object has no attribute &#39;score&#39;

サブクラス Define __slots__ でも使用されない限り、そのため、サブクラス インスタンスが定義できる属性は、サブクラス インスタンス自体の __slots__ に親クラスの __slots__ を加えたものになります。

以上がこの記事の内容です、この記事では主に

python__slots__

の関連知識を紹介しますので、上記の内容を理解するために活用していただければ幸いです。この記事で説明したことがあなたのお役に立ち、Python の学習が容易になることを願っています。 関連知識の詳細については、php 中国語 Web サイトの

Python チュートリアル

列を参照してください。

以上が__slots__ は Python で何ができるのでしょうか? (分析例)の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。