help('string')
をPythonインタプリタに入力すると、文字列クラスに関する情報が得られます。そこには、upper()
が機能として示されています。しかし、私はの代わりに"hi".upper()
のようなメソッドとしてしか呼び出せません。
したがって、組み込みモジュールのドキュメントストリングには、任意のメソッドが関数として指定されると想定できます。しかし、help('list')
を実行すると、リストクラスのメソッドがdocstringsのメソッドとして表示されます。
これはなぜですか? doctringsを書いた人が矛盾していた、または異なる人がそれを書いたからだけですか?あるいは、これらのメソッド(ドキュメンテーションの 'メソッド'と呼ばれるものと '関数'と呼ばれるもの)は、実際には異なるプロパティを持っていますか?Pythonヘルプ( 'string')とヘルプ(list)の不一致?
答えて
help('string')
を検索したところ、string
モジュールのドキュメントストリングを探していました。 help(str)
またはhelp('str')
の場合は、str
タイプのドキュメントストリングを取得します。ここではupper
が表示されます。
あなたはここで見ることができるように、string
モジュールから関数upper
は実際には機能していない方法である。
>>> upper('hi')
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
NameError: name 'upper' is not defined
>>> 'hi'.upper() # method from the str type
'HI'
>>> from string import upper
>>> upper('hi') # function from the string module
'HI'
'string'
はstring
です。だから、'list'
がlists
のための同様の結果を得ることです、あなたがhelp('str')
、ないhelp('string')
を行うことを意味help([])
いいえ...リストのヘルプを得るために 'help( 'list')'をするのは完全に有効です –
(試してください) –
うわー...私はそれを知らなかった。 'x = 'list''、そして' help(x) 'です。それは予期しない動作です! – veiset
を試してみてください。 str
は型であり、string
は文字列を処理する関数を提供するモジュールです。
あなたは、そのオブジェクトのインスタンスを作成し、そのインスタンス上で助けを呼んでいます。
したがって、これらすべての作業:
help(1)
help({})
help([])
help('')
help(dir)
help(help)
ヘルプは、そのインスタンスのdocstringをつかみ、そしてそれをあなたに戻っています。 独自のオブジェクトを作成するときに、便利なドキュメントストリングなどを自由に配置できます。
あなたの目には何も問題はありません。
>>> help('string')
string
モジュールのドキュメントを表示します。そしてupper
関数が内部でありますように見えます:
>>> import string
>>> string.upper('hello')
'hello'
私はこのupper
は、あなたがしなければ呼ばれるものと同じであることを言うだろう:
>>> 'hello'.upper()
しかし、私はよく分かりません。
文字列''
は、タイプではないstr
タイプです。
>>> help('str')
そして、ここであなたもstr.upper
方法が表示されます:これは、おそらく探していることを意味します。
- 1. データ型の不一致ヘルプMS Access VBA
- 2. Android - レイアウトの不一致解決に必要なヘルプ(RelativeLayoutとLinearLayout)
- 3. java.lang.StringとStringの型の不一致エラー
- 4. uksortヘルプ - 単一の必要性のヘルプ
- 5. ヘルプは一度
- 6. グロブパターンのヘルプ - 特定の文字列と一致しないファイル
- 7. AutoHotKeyヘルプと一致する文字と置換する
- 8. Python QuickBase APIヘルプ
- 9. ScalaのPythonのヘルプ()
- 10. Python 2.7 - pandas_readerのヘルプ
- 11. If文のヘルプPython
- 12. タイプの不一致:expected String、actualカラム
- 13. DataTable Select(String)関数のヘルプVB .NET
- 14. 一般的なヘルプ:Node.jsの
- 15. powershell:ftpディレクトリ一覧(スクリプトのヘルプ)
- 16. PERLフィールド内の文字列に一致するRegexのヘルプ
- 17. MySQLとPythonの間の不一致
- 18. Pythonのヘルプ:gmplotのパス
- 19. Pythonシェルのヘルプのフォーマット
- 20. PythonモジュールとC++ランタイム型の不一致?
- 21. Pythonの:辞書とリストの操作ヘルプ〜
- 22. argparseヘルプPythonのモジュールでインデント
- 23. pythonのデータ構造ヘルプ
- 24. Pythonスクリプトのヘルプを書く
- 25. is elseヘルプのifNanヘルプ
- 26. [ヘルプ]致命的な例外:メインのjava.lang.NullPointerException
- 27. sys.pathとos.getcwd()の不一致?
- 28. ヘルプ:Python 2.7.13ユニット変換
- 29. ヘルプ翻訳PYTHON to VB.NET
- 30. ヘルプを挿入するヘルプ
Thnx。 Strはモジュールで定義されたクラスの名前です。____builtin____ stringはモジュールの名前です。 __builtin____モジュール内にすでに定義されているクラスがある場合、別の文字列モジュールを作成したのはなぜですか? – Bentley4
@ Bentley4 'string'モジュールは' str'クラスの中であまり意味を持たない文字列処理に役立つものがたくさんあります。次のようなもの:定数(数字、大文字)、テンプレート、フォーマッタ...詳細[here](http://docs.python.org/library/string.html) – juliomalegria