質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.50%
Python 3.x

Python 3はPythonプログラミング言語の最新バージョンであり、2008年12月3日にリリースされました。

Python

Pythonは、コードの読みやすさが特徴的なプログラミング言語の1つです。 強い型付け、動的型付けに対応しており、後方互換性がないバージョン2系とバージョン3系が使用されています。 商用製品の開発にも無料で使用でき、OSだけでなく仮想環境にも対応。Unicodeによる文字列操作をサポートしているため、日本語処理も標準で可能です。

Q&A

解決済

1回答

807閲覧

単体のpyファイルとして実行すると問題ないのだけれどimportして実行するとうまく返値が得られない。

Aki1000

総合スコア78

Python 3.x

Python 3はPythonプログラミング言語の最新バージョンであり、2008年12月3日にリリースされました。

Python

Pythonは、コードの読みやすさが特徴的なプログラミング言語の1つです。 強い型付け、動的型付けに対応しており、後方互換性がないバージョン2系とバージョン3系が使用されています。 商用製品の開発にも無料で使用でき、OSだけでなく仮想環境にも対応。Unicodeによる文字列操作をサポートしているため、日本語処理も標準で可能です。

0グッド

0クリップ

投稿2018/11/11 03:24

編集2018/11/11 03:56

コードを組んでいるのですが、同じpyファイルとして実行すると問題ないのだけれどimportして実行するとうまく返値が得られません。

Python

1#module.py 2shikibetsu=[0,0,0,0,0] 3def method(self): 4 global shikibetsu 5 for i in range(5): 6 if chkimg("mark.bmp",i) != 0: 7 shikibetsu[i] = 2 8 else: 9 shikibetsu[i] = 1 10 return shikibetsu 11 12 13Kobj=module() 14A=Kobj.method() 15print(A)

chkimgは画像一致を調べるコードで、特に今回関係はないです。
上の結果は問題なく[1,1,1,1,1]と出るのですが、上記のmodule.pyから
Kobj=module()
A=Kobj.method()
print(A)
を削除し、下のように別ファイルにてimportして使用しようとすると、

Python

1from module import * 2Kobj=module() 3A=Kobj.method 4print(A)

print(A)では
<bound method Kobj.method of <Kobj.Kobj object at 0x0000000003E86278>>
という表示が出ます。

何が悪いのでしょうか?
他の関数で使うのでglobal変数にしている事が何か悪さしているのでしょうか?

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

guest

回答1

0

ベストアンサー

呼び出し忘れている可能性はありませんか?

python

1Kobj=module() 2A=Kobj.method # こんな感じ…… 3print(A)

これはAにメソッドのオブジェクトを代入するという意味のコードなので、メソッドを呼び出した結果を代入したいのであれば

python

1Kobj=module() 2A=Kobj.method() 3print(A)

としてください。

投稿2018/11/11 03:35

編集2018/11/11 03:56
hayataka2049

総合スコア30933

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

Aki1000

2018/11/11 03:55

すいませんっっ、質問のところで書き間違えてました! Kobj=module() A=Kobj.method print(A) となっているのですが、<bound method Kobj.method of <Kobj.Kobj object at 0x0000000003E86278>>というエラーがでます。質問を修正しました。
hayataka2049

2018/11/11 03:58

エラーではなく、正常に実行された結果です。 すでに追記しましたが、 A=Kobj.method ではメソッドのオブジェクトがAに代入されます。
Aki1000

2018/11/11 03:58

あっっっ解決しました。 逆にA=Kobj.methodとなっているところを A=Kobj.method()にしたら動きましたっ
Aki1000

2018/11/11 04:00

ありがとうございました!
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.50%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問