1

さて、私はdjangoでいくつかのコマンドの作成に取り組んでいますが、ここで私のコードに関して興味深い問題に遭遇しました...

from django.core.management.base import LabelCommand
from optparse import make_option

class Command(LabelCommand):
    requires_system_checks = False
    can_import_settings = True

    args ="[none]"
    label = "person's name"

    option_list = LabelCommand.option_list + (
         make_option('--cap',
         action='store_true',
         dest='capitalize',
         help= 'Tells Django to capitalize the name'),
        )

    help = "Runs a shell output that writes out 'Hello' and the specified name"

    def handle_label(self, name, **options):
        if options.get('capitalize', False):
            name = name.capitalize()

        print ("Hello %s!" % name)

私を悩ませているのは、コードの後半部分の def と、自己入力とオブジェクトhandle_label入力の明らかな違いです。selfはメインクラス (この場合はCommand ) から継承されたインスタンスだと思いました。実際にオブジェクト (この場合はname ) をこのメソッドに入力している場合、なぜ self が必要なのですか? ここでは参照していませんが、これをパラメーターとして入力する必要があるのはなぜですか? おそらく、私はこの方法をよく理解していません。いずれにせよ、誰かがこれらの違いを明確にするのを手伝ってくれますか? ありがとう。

4

0 に答える 0