47

私はpythonの初心者です。何が問題なのか理解できませんか?

def list_benefits():

        s1 = "More organized code"
        s2 = "More readable code"
        s3 = "Easier code reuse"
        s4 = "Allowing programmers to share and connect code together"
        return s1,s2,s3,s4

def build_sentence():

        obj=list_benefits()
        print obj.s1 + " is a benefit of functions!"
        print obj.s2 + " is a benefit of functions!"
        print obj.s3 + " is a benefit of functions!"

print build_sentence()

私が得ているエラーは次のとおりです。

Traceback (most recent call last):
   Line 15, in <module>
   print build_sentence()
   Line 11, in build_sentence
   print obj.s1 + " is a benefit of functions!"
AttributeError: 'tuple' object has no attribute 's1'
4

5 に答える 5

41

4 つの変数 s1、s2、s3、s4 を返し、単一の variable を使用してそれらを受け取りますobj。これは a と呼ばれるもので、 の値tupleobjある 4 つの値に関連付けられていますs1,s2,s3,s4。したがって、リストで使用するように index を使用して、必要な値を順番に取得します。

obj=list_benefits()
print obj[0] + " is a benefit of functions!"
print obj[1] + " is a benefit of functions!"
print obj[2] + " is a benefit of functions!"
print obj[3] + " is a benefit of functions!"
于 2013-06-25T06:02:20.040 に答える
10

を返していtupleます。索引付けします。

obj=list_benefits()
print obj[0] + " is a benefit of functions!"
print obj[1] + " is a benefit of functions!"
print obj[2] + " is a benefit of functions!"
于 2013-06-25T05:59:11.920 に答える
5

変数名はローカルでのみ意味があります。

一度打てば

return s1,s2,s3,s4

メソッドの最後で、Python はインデックス 0、1、2、3 の 4 つのメンバーとして s1、s2、s3、s4 の値を持つタプルを構築します - 変数名から値への辞書ではなく、変数を持つオブジェクトではありません名前とその値など

メソッドをヒットした後に変数名を意味のあるものにしたい場合はreturn、オブジェクトまたは辞書を作成する必要があります。

于 2013-06-25T06:00:16.783 に答える
1

私はpythonフラスコで作業しています:同じ問題がありました...フォーム変数を宣言した後に「、」がありました。私はwtformsで作業しています。それがすべての混乱の原因です

于 2020-05-05T03:41:25.230 に答える