こんにちは。今日は「Pythonの関数(オブジェクト) オブジェクト.関数() の違いは何ですか?」 という質問に回答します。
基本的にはメソッドの場合は、そのオブジェクト固有の処理が多いです。 "文字列".split "文字列".startswith などです。これは文字列固有です。
ですが は文字列にも、リストにも使えます。 len("文字列") なのです。こういった場合は、Pythonでは関数で用意されています。
また、printなどのように特定のオブジェクトの型に関係しない場合も関数で用意されます。
PyCon 2017で清水川氏の発表がこの質問と近い内容でした。あわせてご紹介します。
PyCon トークの沢山の動画がYoutubeで公開されています。興味があるタイトルなどを探してみるのも秋の連休の長い夜の楽しみになりそうですね。