はじめにには以下のように書かれています。
多くのプロジェクトには、自分たちのコーディングスタイルに関するガイドラインがあります。それとこの文書の規約の内容が矛盾した場合は、そのプロジェクトのガイドラインが優先します。
一貫性にこだわりすぎるのは、狭い心の現れであるには以下のように書かれています。
スタイルガイドは一貫性に関するものです。このスタイルガイドに合わせることは重要ですが、プロジェクトの中で一貫性を保つことはもっと重要です。一番重要なのは、特定のモジュールや関数の中で一貫性を保つことです。
しかし、一貫性を崩すべき場合があることも知っておいてください - つまり、このスタイルガイドが適用されない場合があります。疑問に思ったときは、あなたの判断を優先してください。他の例を調べ、一番良さそうなものを決めて下さい。そして、躊躇せずに質問して下さい!
今回のご質問は、どちらのルールを優先すべきかですが、基本的にはkairi003あるいはkairi003さんが参加しているプロジェクトで決めるべき問題であると思われます。
その前提としてPythonの変数とは何か、Pythonのクラス名とは何かを理解しておいてください。
クラスには二つの名前があります。
ひとつはクラスが生成されるときにそのクラスオブジェクトの属性である名前です。
これは以下の方法で確認できます。
Python
1>>> class Foo():
2... pass
3...
4>>> print(MyClass.__name__)
5Foo
もう一つは、生成されたクラスオブジェクトが束縛されている変数名です。
4.2. 名前づけと束縛 (naming and binding)には以下のように書かれています。
以下の構造で、名前が束縛されます: 関数の仮引数 (formal parameter) 指定、 import 文、クラスや関数の定義 (定義を行ったブロックで、クラスや関数名を束縛します)、代入が行われるときの代入対象の識別子、 for ループのヘッダ、 with 文や except 節の as の後ろ。 "from ... import *" 形式の import 文は、 import されるモジュール内で定義されている、アンダースコアから始まるもの以外の全ての名前を束縛します。
つまり、Fooという変数には上記のクラスオブジェクトが束縛されています。
Fooはクラスの名前属性でもあり、変数名でもあります。
Bar = Foo
とするのは、FooもBarも変数名であるという考え方から妥当です。
bar = Fooとするのはクラス定義以外の方法で定義した変数名という考え方から妥当です。
どちらを選択しても良いというのが私の意見です。
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。