3

schedule.pyという名前のファイルがあります。

class SchedGen:
    """ Class creates a pseudo random Schedule. 
    With 3/4 of total credit point required for graduation"""
    def __init__(self, nof_courses=40):
        random.seed()
        self.courses = {}
        self.nof_courses = nof_courses

        for i in xrange(nof_courses):
            self.courses[i] = college.Course(i)

        self.set_rand_cred()
        self.set_rand_chance()
        self.set_rand_preq_courses()



    def set_rand_cred(self):
        """ Set random credit to courses uniformly between 2 and 6"""
        temp_dict = self.courses.copy()

スケジュールのコンテンツをインポートしている間、私はimport schedule好きですか:

import schedule

それが正しい場合、SchedGen クラスから関数 set_rand_cred(self) にアクセスするにはどうすればよいですか?

4

6 に答える 6

1

あなたはどちらかを行うことができます

import schedule
schedgen = schedule.SchedGen()
schedgen.set_rand_red()

また

from schedule import SchedGen
schedgen = SchedGen()
schedgen.set_rand_red()

このリンクは、Pythons import ステートメントがどのように機能するかについての情報を提供します。

于 2013-01-02T16:33:49.993 に答える
1

関数はクラスのset_rand_cred()インスタンス関数なので、最初にクラス インスタンスを作成する必要があります。クラス インスタンスを作成するには、クラスの名前にアクセスできる必要があります。これには 2 つの方法があります。

それぞれの方法を使用して問題を解決する方法は次のとおりです。

モジュールのインポート:

import schedule

s = schedule.SchedGen()
s.set_rand_cred()

モジュール内からクラスをインポートし、クラスをローカル名前空間に配置します。

from schedule import SchedGen

s = SchedGen()
s.set_rand_cred()
于 2013-01-02T16:34:55.340 に答える
0

最初に(クラスの修飾名を使用して)インスタンスを作成してから、インスタンスの属性としてその関数にアクセスする必要があります。

import schedule
s = schedule.SchedGen()
s.set_rand_cred()
于 2013-01-02T16:33:05.443 に答える
0

そのように:

import schedule

schedule_generator = schedule.SchedGen()
schedule_generator.set_rand_cred()

詳細については、Python のドキュメントを参照してください: http://docs.python.org/2/tutorial/classes.html

于 2013-01-02T16:33:58.033 に答える
0

それがサードパーティであろうと自分で作成したものであろうと、まさにそれが別のモジュールをインポートする方法です。さて、Python の優れた点の 1 つは、これをさまざまな方法で使用できることです。1 つは、モジュールのインポート、そこからのクラスの取得、またはクラス自体のインポートです。

import schedule
foo = schedule.SchedGen()
returned_var = foo.set_rand_cred()

クラスを単独でインポートすると、ほとんど同じになります。

from schedule import SchedGen
foo = SchedGen()
returned_var = foo.set_rand_cred()
于 2013-01-02T16:35:40.423 に答える
0

あなたはこれを行うことができます:

import schedule
schedule.SchedGen.set_rand_cred()

しかし、これを行うのがより一般的です:

from schedule import SchedGen
SchedGen.set_rand_cred()
于 2013-01-02T16:35:51.650 に答える