ホームページ > バックエンド開発 > Python チュートリアル > Pythonの高度な機能の詳細な使用例

Pythonの高度な機能の詳細な使用例

零到壹度
リリース: 2018-05-15 14:20:23
オリジナル
2489 人が閲覧しました

この記事では、Python の高度な機能の使用方法を例を交えて詳しく説明します。この内容が、困っている友人に役立つことを願っています。

関数パラメータの問題

3つの基本的な状況

  • fun(a,b)

  • fun(a,b)bは反復可能オブジェクト

  • fun(a,**b) b は取得型の反復オブジェクトであり、関数本体内で解析されると辞書に相当します

ls = [i for i in range(10)]
#print(ls)
def fun1(a,*b):
    for i in b:
        print(a,i)
#fun1(1,*ls)

def fun2(name,age,**kw):
    print("name:",name,"age:",age,"other:",kw)

fun2('fanhaitao','26',参数= 'random')
ログイン後にコピー
**kw参数把键值对转换成字典的形式
ログイン後にコピー

匿名関数

lambda

  1. 戻り値はありません、戻り値は式の値です

  2. 関数には名前がありません、名前の競合を心配する必要はありません

  3. Anonymous function は関数オブジェクトでもあり、匿名関数も使用できます。 変数に値を代入し、その変数を使用して関数を呼び出します

fun3 = lambda x:x+1
print(fun3(99))

#100
fun4 = lambda x,y :x*x + y*y
print(fun4(3,4))
#25
ログイン後にコピー

Decorator@

この方法は、コード中に機能を動的に追加します。実行は「デコレーター」と呼ばれます

パラメータのないデコレーター

#定义一个装饰器
def log(func):
    def wrapper(*args,**kw):
        print('call %s()' % func.__name__)
        return func(*args,**kw)
    return wrapper
@log
def now():
    print('2018-3-29')
    
now()
ログイン後にコピー

デコレーターの内部論理関係 (呼び出しシーケンス): log() -> return Wrapper() -> return func() -> ; now()

含まれるパラメータデコレーター

#定义一个装饰器
def log(text):
    def decorator(func):
        def wrapper(*args,**kw):
            print('%s %s():' % (text,func.__name__))
            return func(*args,**kw)
        return wrapper
    return decorator
@log("可爱的参数")
def now():
    print('2018-3-29')

now()
ログイン後にコピー

BiF組み込み関数

zip: 2つの反復可能なオブジェクトを1つの反復可能なオブジェクトに結合します

注: 重複する一致しない変数は破棄されます

りー

enumerate: 位置 + 要素で構成される反復可能なオブジェクトを返します

a = [1,2,3]
b = 'abcde'
for i in zip(a,b):
    print(i)
for i,j in zip(a,b):
    print("Index:",i,";Item:",j)
ログイン後にコピー

filter: フィルター関数

2 つのパラメーター、最初の 1 つはパラメーター、2 つ目は反復可能なオブジェクト, return の値も反復可能なオブジェクトです; パラメーター内の反復オブジェクトが関数内で True の場合、値は保持されます。それ以外の場合は、パラメーター内の関数が各反復オブジェクト


に対して動作し、戻り値を返します。 functools ライブラリ

内の操作対象オブジェクト
  • for i,j in enumerate('abcde'):
        print(i,j)
    ログイン後にコピー

    reduce
  • func は 2 つのパラメータ

を受け取ります
    reduce は結果を継続し、次の要素で累積計算を実行しますシーケンスの
  • print(list(filter(lambda x:(x*x+x+2)%8 == 0,range(100))))
    ログイン後にコピー
    #5050
  • 関連する推奨事項:

  • Python の高度な機能

    Python 関数と高度な構文のコレクション

    Pythonの高度な使用法機能

    以上がPythonの高度な機能の詳細な使用例の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

関連ラベル:
ソース:php.cn
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
最新の問題
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート