2017-11-18 3 views
2

基本的な質問かもしれませんが、line, =のコードは何ですか?Pythonで値をアンパック

 
import numpy as np 
import matplotlib.pyplot as plt 

ax = plt.subplot(111) 

t = np.arange(0.0, 5.0, 0.01) 
s = np.cos(2*np.pi*t) 
line, = plt.plot(t, s, lw=2) 

plt.annotate('local max', xy=(2, 1), xytext=(3, 1.5), 
      arrowprops=dict(facecolor='black', shrink=0.05), 
      ) 

plt.ylim(-2,2) 
plt.show()

私はエラーintオブジェクトが反復可能ではなく、このa, = 1,作品スロー簡単な例a, = 1てみました。

だからvar, =は何ですか?

+0

私は好奇心が強い、あなたは 'プリント(ライン)'行 '後、= plt.plot(T、S、LW = 2から何を得るのですか) '。私はatmをテストすることはできませんが、私は 'plot()'が何かを返すことに気づいていませんでした。 – roganjosh

+0

@roganjosh参考文献[テキストを追加](https://matplotlib.org/users/pyplot_tutorial.html#annotating-text) – bhansa

+0

@roganjoshそれはLine2Dオブジェクトを返す 'Line2D(_line0)' – bhansa

答えて

1

plt.plot(t, s, lw=2)への呼び出しは elementtupleを返します。これは、variablelineに解凍されます。

同じ論理はここで見ることができます:

>>> a = tuple([1]) 
>>> a 
(1,) 
>>> b, = a 
>>> b 
1 
+0

ああ!単一要素のタプルのように見えます。 – bhansa

+0

@bhansaはい、まさに!私は私の答えで、明らかにされていないかもしれないことを示してみました... –