以前、Kotlinをさわっての記事を記載しましたが、AIが話題になっておりそれに伴いよく耳にする言語であるPythonを今回はさわっていきたいと思います。その中から私がこの機能は他で見たことないなと思ったものを抜粋して共有したいと思います
-
Kotlinをさわってみる - ナストンのまとめ
最近、C#やPowerShell、JavaScirptでしかコードを書けていないため、新たな刺激を求めてKotlinを少 ...
続きを読む
そもそもPythonってどんな言語?
特徴としては以下のサイトでも記載があるように、シンプルで覚えることが少ない構文、幅広い用途に使える外部ライブラリが豊富などといった特徴があるそうです
詳しくは以下のサイトを参照してください
-
[Python入門]Pythonってどんな言語なの?:Python入門(1/2 ページ) - @IT
機械学習に取り組んでみたいという人に(そうでない人にも)向けて、Pythonプログラミングを基礎からやさしく解説する連載 ...
atmarkit.itmedia.co.jp
引数をまとめて扱う
関数の引数の先頭に*(アスタリスク)を付けるとタプルとして扱われ、引数の先頭に**(アスタリスク・アスタリスク)を付けると辞書として扱われるようです
タプルは他言語で聞いたことがないのでPython独自のものなのかなと思います(私が知らないだけかもしれませんが...)
辞書もアスタリスクが2つ付くというのもC++をさわったことのある私からするとポインターのポインターに見えてちょっと違和感があります
def showTuple(*a): # 引数 a はタプル
print(a)
tuple = " ".join(a)
tuple += "!"
print(tuple)
showTuple("Only", "One", "Tuple", "Hoge")
# 実行結果
('Only', 'One', 'Tuple', 'Hoge')
Only One Tuple Hoge!
def showDic(**a): # 引数 a は辞書
print(a)
showDic(Only=3, One=4, dic=10, hoge=5)
# 実行結果
{'Only': 3, 'One': 4, 'dic': 10, 'hoge': 5}
特殊なクラスメソッド
クラス内に特殊なメソッドが設定できるようでまず初めに「__str__」は、str関数の( )内にインスタンスを渡した際に文字列が返ってきて、次に「__call__」は、インスタンスを関数のように扱うことができるようです。これもPython独自のモノかなと思っています。
class StrMethod:
def __str__(self):
return "__str__ Method Call."
str1 = StrMethod()
print(str(str1)) # str()関数にインスタンスを渡す
# 実行結果
__str__ Method Call.
class CallMethod:
def __call__(self, str1, str2):
return str1*5 + str2*3
call1 = CallMethod()
print(call1("Hoge", "Huga")) # call1を関数のように扱える