2016-08-07 8 views
-1

私はaddsubという2つのメソッドを持つcalcというテストPythonクラスを持っています。どうすればPythonプロンプトからメソッドを実行できますか?私はPythonのコマンドライン ">>>"にあり、タイプはimport calcです。次に、私はcalc.add(5,3)と入力し、 "calc 'という名前のモジュールはありません。ファイル名はcalc.pyです。クラス内のメソッドを呼び出す方法は?

class calc: 

    def add(x,y): 
     answer = x + y 
     print(answer) 

    def sub(x,y): 
     answer = x - y 
     print(answer) 
+0

。これらの関数のどちらも 'calc'クラスからの状態を必要としません。それから、現在あなたがしていることがうまくいくでしょう。クラスはかなり冗長です。 –

答えて

2

calcモジュール内のクラスモジュール名です。 import calcを使用して、calc.calcでクラスを参照してください。

calc.py

class calc: 

    def add(self, x, y): # note the use of "self" 
     answer = x + y 
     print(answer) 

    def sub(self, x, y): 
     answer = x - y 
     print(answer) 

テストスクリプト:

import calc 
c = calc.calc() 
c.add(5, 3) 

などpprinttimeとして標準ライブラリの展示では、いくつかのモジュール、この命名体系、 、およびdatetime

+0

ありがとうございますが、これは私が上記と一緒になっているプリントアウトです。 Python 3.4.3 | Anaconda 2.3.0(x86_64)| (default、Oct 20 2015、14:27:51) ダーウィンの[GCC 4.2.1(Apple Inc. build 5577)] 詳細については、 "help"、 "copyright"、 "credits"または "license"と入力してください。 >>>インポートカルク >>> C = calc.calc() >>> c.add(5,3) トレースバック(最新の呼び出しの最後): で ファイル ""、ライン1、 TypeError:add()は2つの位置引数をとりますが、3つは与えました >>> – martinbshp

+0

@martinbshp - 'calc.py'のコードブロックのコメントに注意してください。その変更はその問題を解決します。 – TigerhawkT3

0

あなたのcalcモジュールからcalcクラスをインポートする必要があります。ただ、スタンドアロン機能としてそれらを定義

from calc import calC# we're importing only calc class from that module 

c = calc() 
c.add(5,3) 
関連する問題