Movatterモバイル変換


[0]ホーム

URL:


Skip to content

Navigation Menu

Sign in
Appearance settings

Search code, repositories, users, issues, pull requests...

Provide feedback

We read every piece of feedback, and take your input very seriously.

Saved searches

Use saved searches to filter your results more quickly

Sign up
Appearance settings

不変な条件 → 不変条件 #1009

Open
@msakai

Description

@msakai

概要

invariant が「不変な条件」と訳されている箇所がありましたが、「不変条件」が定着した訳だと思うので、そのようにした方が良いと思います。

問題のある箇所 (URLで指定すること)

https://docs.python.org/ja/3.15/library/pickle.html#object.__setstate__

注釈 非 pickle 化に際しては、__getattr__(),__getattribute__(), または__setattr__() といったメソッドがインスタンスに対して呼ばれることがあります。これらのメソッドが何らかの内部の不変な条件が真であることを必要とする場合、その型は__new__() メソッドを実装してそのような不変な条件を構築すべきです。なぜならばインスタンスの非 pickle 化においては__init__() メソッドは呼ばれないからです。

原文
https://docs.python.org/3.15/library/pickle.html#object.__setstate__

Note At unpickling time, some methods like__getattr__(),__getattribute__(), or__setattr__() may be called upon the instance. In case those methods rely on some internal invariant being true, the type should implement__new__() to establish such an invariant, as__init__() is not called when unpickling an instance.

問題の詳細

なお、こちらの箇所では「不変条件」という訳語が使われていました。

https://docs.python.org/ja/3.15/howto/enum.html

メンバーが定義された列挙型のサブクラス化を許可すると、いくつかのデータ型およびインスタンスの重要な不変条件の違反を引き起こします。とはいえ、それが許可されると、列挙型のグループ間での共通の挙動を共有するという利点もあります。 (OrderedEnum の例を参照してください。)

IntEnum をベースとしないため、通常のEnum の不変条件 (他の列挙型と比較できないなど) のままで、メンバーを順序付けできる列挙型です:

原文:
https://docs.python.org/3.15/howto/enum.html

Allowing subclassing of enums that define members would lead to a violation of some important invariants of types and instances. On the other hand, it makes sense to allow sharing some common behavior between a group of enumerations. (SeeOrderedEnum for an example.)

An ordered enumeration that is not based onIntEnum and so maintains the normalEnum invariants (such as not being comparable to other enumerations):

修正案

注釈 非 pickle 化に際しては、__getattr__(),__getattribute__(), または__setattr__() といったメソッドがインスタンスに対して呼ばれることがあります。これらのメソッドが何らかの内部的な不変条件が成り立つことに依存する場合、その型は__new__() メソッドを実装してそのような不変条件が成り立つようにすべきです。なぜならばインスタンスの非 pickle 化においては__init__() メソッドは呼ばれないからです。

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions


      [8]ページ先頭

      ©2009-2025 Movatter.jp