Differences between revisions 1 and 2
Revision 1 as of 2018-09-28 15:22:24
Size: 248
Comment:
Revision 2 as of 2018-10-01 00:16:05
Size: 2362
Comment:
Deletions are marked like this. Additions are marked like this.
Line 7: Line 7:

下記の様に、キーワード付き引数を指定することができます。キーワード付き引数は関数定義側で、デフォルトの値を指定することができます。

{{{#!highlight python

def repeat_msg( msg, repeat=3 ):
    for i in range( repeat ):
        print( msg )

repeat_msg('Hello') # Hello, Hello, Hello
repeat_msg('Yahho', repeat=5) # Yahho, Yahho, Yahho, Yahho, Yahho

}}}


*name は残りの順序引数を、**name はキーワード付き引数を辞書型で受け取ります。

{{{#!highlight python

def func( a1, a2, *args, **params ):
    print( a1 ) #=> A
    print( a2 ) #=> B
    print( args ) #=> ('C', 'D')
    print( params ) #=> {'k1': 'K1', 'k2': 'K2'}


func('A', 'B', 'C', 'D', k1='K1', k2='K2')

}}}



args や params を変数で渡す場合には、呼び出す側にも * や ** をつけます。

{{{#!highlight python
args = ('C', 'D')
params = {'k1': 'K1', 'k2': 'K2'}
func('A', 'B', *args, **params) #=> A, B, ('C', 'D'), {'k1': 'K1', 'k2': 'K2'}
}}}


グローバル変数(global)

関数の外部で定義された変数は グローバル変数 として扱われます。関数の中でグローバル変数を参照することはできますが、代入することはできません。代入する場合は、global で宣言する必要があります。

{{{#!highlight python
count = 0 # グローバル変数

def func():
    print( count ) # 参照することはできる
    global cound # global宣言してやれば
    count += 1 # 代入することもできる
}}}


globals() はグローバル変数、locals() はローカル変数の一覧を辞書として返却します。

{{{#!highlight python
def func():
    for k in globals().keys():
        print( "GLOBAL: %s = %s" % (k, globals()[k]) )
    for k in locals().keys():
        print( "LOCAL: %s = %s" % (k, locals()[k]) )

func()
}}}

下記の様に、キーワード付き引数を指定することができます。キーワード付き引数は関数定義側で、デフォルトの値を指定することができます。

   1 def repeat_msg( msg, repeat=3 ):
   2     for i in range( repeat ):
   3         print( msg )
   4 
   5 repeat_msg('Hello')                    # Hello, Hello, Hello
   6 repeat_msg('Yahho', repeat=5)          # Yahho, Yahho, Yahho, Yahho, Yahho

*name は残りの順序引数を、**name はキーワード付き引数を辞書型で受け取ります。

   1 def func( a1, a2, *args, **params ):
   2     print( a1 )                    #=> A
   3     print( a2 )                    #=> B
   4     print( args )                  #=> ('C', 'D')
   5     print( params )                #=> {'k1': 'K1', 'k2': 'K2'}
   6 
   7 
   8 func('A', 'B', 'C', 'D', k1='K1', k2='K2')

args や params を変数で渡す場合には、呼び出す側にも * や ** をつけます。

   1 args = ('C', 'D')
   2 params = {'k1': 'K1', 'k2': 'K2'}
   3 func('A', 'B', *args, **params)     #=> A, B, ('C', 'D'), {'k1': 'K1', 'k2': 'K2'}

グローバル変数(global)

関数の外部で定義された変数は グローバル変数 として扱われます。関数の中でグローバル変数を参照することはできますが、代入することはできません。代入する場合は、global で宣言する必要があります。

   1 count = 0                   # グローバル変数
   2 
   3 def func():
   4     print( count )            # 参照することはできる
   5     global cound            # global宣言してやれば
   6     count += 1              # 代入することもできる

globals() はグローバル変数、locals() はローカル変数の一覧を辞書として返却します。

   1 def func():
   2     for k in globals().keys():
   3         print( "GLOBAL: %s = %s" % (k, globals()[k]) )
   4     for k in locals().keys():
   5         print( "LOCAL: %s = %s" % (k, locals()[k]) )
   6 
   7 func()

SoftEng: Python/Lang/Function/Return/Contents (last edited 2018-10-01 01:32:34 by TadashiIijima)