関数
基本
def functionA():
print("関数です")
functionA()引数
引数の初期値も設定できます。また値は数値や文字列だけでなく、リストやタプル、辞書型、Numpy、Pandasなどでも引数として渡せます。
def functionA(num1, str1, list1, num2=100):
print(num1, str1, num2)
print(list1)
data = [1, 2, 3, 4, 5]
functionA(123, "aaa", data)以下のように、引数の変数を指定すると、指定する順序が違っても、指定した変数に値が挿入されます。
def functionA(num1, str1, list1, num2=100):
print(num1, str1, num2)
print(list1)
data = [1, 2, 3, 4, 5]
functionA(
list1 = data,
num1 = 123,
str1 = "aaa"
)
# 123 aaa 100
# [1, 2, 3, 4, 5]可変長引数
可変長引数は、予め決まった個数ではなく、任意の個数を受け渡すことができます。
タプル型で受け渡す
関数の引数を*argsとするだけです。他の引数と合わせて指定することもできます。
def functionA(*args):
print(args)
data = [1, 2, 3, 4, 5]
functionA(123, "aaa", data)
# (123, 'aaa', [1, 2, 3, 4, 5])
def functionB(num1, *args):
print(num1)
print(args)
data = [1, 2, 3, 4, 5]
functionB(123, "aaa", data)
# 123
# ('aaa', [1, 2, 3, 4, 5])辞書型(連想配列)で受け渡す
関数の引数を**kwargsとするだけです。
以下の例にはありませんが、他の引数と合わせて指定することもできます。
def functionA(**kwargs):
print(kwargs)
data = [1, 2, 3, 4, 5]
functionA(
num1 = 123,
str1 = "aaa",
data = data
)
# {'num1': 123, 'str1': 'aaa', 'data': [1, 2, 3, 4, 5]}
戻り値(返り値)
基本
def functionA(num1, num2):
return num1+num2
aaa = functionA(123, 456)
print(aaa)
# 5792つ以上を返す
以下のように、個別の変数として、またはリストなどとして返すということができます。もちろん例えばPandasのデータフレームを返すこともできます。
def functionA(num1, num2):
num1 = num2 * 2
num2 = num2 * 3
return num1, num2
aaa, bbb = functionA(123, 456)
print(aaa, bbb)
# 912 1368
def functionB(num1, num2):
num1 = num2 + 1
num2 = num2 + 2
return [num1, num2]
aaa = functionA(123, 456)
print(aaa)
# (912, 1368)
print(aaa[0])
# 912
クラス
掘り下げると結構大変なので概要だけです。
基本
def __init__でクラスの初期値などを設定します。コンストラクタですね。
class classA:
def __init__(self):
self.aaa = 100
self.sss = zzz
def functionA(self):
print("Classです", self.aaa, zzz)
zzz = "ZZZ"
insA = classA()
print(insA.aaa, insA.sss)
# 100 ZZZ
insA.functionA()
# Classです 100 ZZZ引数
引数の初期値も設定できます。また値は数値や文字列だけでなく、リストやタプル、辞書型、Numpy、Pandasなどでも引数として渡せます。関数と同じですね。
class classA:
def __init__(self, num1, num2=200):
self.aaa = 100
self.bbb = num1
self.ccc = num2
def functionA(self, num3, num4=300):
print(num3, num4)
insA = classA(123)
print(insA.aaa, insA.bbb, insA.ccc)
# 100 123 200
insA.functionA(456)
# 456 300戻り値(返り値)
関数と基本的に同じですね。
class classA:
def __init__(self, num1, num2=200):
self.aaa = 100
self.bbb = num1
self.ccc = num2
def functionA(self, num3, num4=300):
num3 += self.aaa
num4 += self.bbb
return num3, num4
insA = classA(123)
zzz = insA.functionA(456)
print(zzz)
# (556, 423)継承
class classA():
def __init__(self):
self.aaa = 100
def functionA(self):
print("Aです")
class classB(classA):
def __init__(self):
self.bbb = 100
def functionB(self):
print("Bです")
insB = classB()
insB.functionA()
# Aです
insB.functionB()
# Bです

コメント