Python
 Computer >> コンピューター >  >> プログラミング >> Python

Python関数属性とは何ですか?


Pythonのすべてがオブジェクトであり、ほとんどすべてに属性とメソッドがあります。 Pythonでは、関数もオブジェクトです。したがって、他のオブジェクトと同様の属性があります。すべての関数には、関数のソースコードで定義されたドキュメント文字列を返す組み込みの属性__doc__があります。それらに新しい属性を割り当てたり、それらの属性の値を取得したりすることもできます。

属性を処理するために、Pythonは「getattr」と「setattr」を提供します。これは3つの引数を取る関数です。 「setattr」と=代入演算子の左側にあるドット表記の使用に違いはありません:

指定されたコードは、属性を割り当てて取得するために次のように記述できます。

def foo():
    pass
setattr(foo, 'age', 23 )
setattr(foo, 'name', 'John Doe' )
print(getattr(foo, 'age'))
foo.gender ='male'
print(foo.gender)
print(foo.name)
print(foo.age)
出力
C:/Users/TutorialsPoint1/~.py
23
male
John Doe
23

  1. Pythonの無名関数とは何ですか?

    Pythonでは、無名関数は名前なしで定義される関数です。通常の関数はdefキーワードを使用して定義されますが、Pythonでは無名関数はlambdaキーワードを使用して定義されます。したがって、無名関数はラムダ関数とも呼ばれます。 指定されたコードを実行すると、次の出力が得られます C:/Users/TutorialsPoint1/~.py [(13, -3), (4, 1), (1, 2), (9, 10)]

  2. Python関数はオブジェクトですか?

    Pythonは、defステートメントを使用するとき、またはラムダ式を使用するときに、関数オブジェクトを作成します。 次のように、関数オブジェクトに属性を割り当てて取得できます 例 def foo(): pass foo.score = 20 print(type(foo)) print(foo.score) print(type(lambda x:x)) 出力 次の出力が得られます C:/Users/TutorialsPoint1/~.py <type 'function'> 20 <type 'function'> はい、Python