Butong の自作 Python 関数ヘルプクエリツール
たとえば、list、tuple、dict、str、os、sys などのモジュールを学習する場合、Python 独自のドキュメントを使用して、それらの処理関数を迅速かつ包括的に学習できます。したがって、この組み込みのドキュメント機能は研究者に大きな利便性をもたらし、短期間の開発には最適です。
ただし、CMD を離れて IDLE を使用したり、「セグメント プログラミング」に Komodo Edit などのソフトウェアを使用したりする場合は、少し無理が生じます。たとえば、wx ライブラリは非常に大きく、ヘルプ ファイルは 10MB あります。これを CMD で開くと、必要なヘルプ情報を表示するのにどれくらいの時間がかかるかを考えることができます。 Python のさまざまな API を大規模に理解すると、これが想像していたほど使いにくいことがわかるでしょう。いずれかのキーを押し続けるとページがめくられますが、ページ内に収容できるページ数にも制限があります。ですので、大変ご迷惑をおかけしております。
この問題を解決するには、おそらく 2 つの方法があります。
まず、Module Docs ツールを使用します。
このツールは、Python GUI IDLE に付属するヘルプ ファイルをクエリする方法です。その中で、Web ページの形式を使用し、マシンのローカル機能を使用して、シミュレートされたオンライン クエリ方法を提供できます。 Web ページを開くことができ、すべての機能を標準化された分類で表示でき、比較的明確ですが、検索機能がないため、やはり使いにくいです。検索したWebページコンテンツへのリンクを保存すると、継続して利用することができなくなります。したがって、これは大きな問題であると同時に、生成される Web ページ ファイルが大きく、メモリが少なすぎるため、システムに負担がかかります。したがって、この方法はあまり便利な方法ではありません。
次に、独自のツールを開発します
実際、私は独自のツールを開発する気はありません。結局のところ、これには時間がかかり、数日から数日かかります。たとえそれが少なくても、それ以上であるとも言えますし、結局のところ、これを行うには多くの気を散らす必要があります。長い間オンラインで検索しましたが、見つかりませんでした。wx については、wxPython API の英語のドキュメントを見つけました。これは、関数と特定のパラメーターを直接リストしたもので、基本的には非常に曖昧です。その使用方法に関する情報はほとんど記載されておらず、多くのコントロールのさまざまなスタイルについては詳細が記載されていません。そのため、名前を忘れた場合は、完全な単語と詳細なパラメータのリストを確認することもできます。他の機能が関与することはほとんどありません。
これを考慮して、さまざまな関数やモジュールの機能を低システムコストで便利にクエリできる小さなツールを自分で作成することにしました。ここでは使用可能なバージョンを 1 つだけ示します。ソース コードは誰でも公開されており、コード スタイルとコントロールの設計は初心者でも真似できます。専門家は喜んで私を批判してくれますし、私も耳を傾けます。後続のバージョンもここでリリースされる可能性があります。現在リリースされているソース コード ファイルは、ダブルクリックするだけで実行できます。
#coding=utf-8
#功能介绍:本软件最初只用于模块和函数用法的查询,进行快速的显示
#扩展功能:可以将查询成功的结果保存到本地,
# 将里面的部分函数使用汉语进行注释之后的结果保存下来
# 以保存的关键字放于右侧列表
#深度扩展:使用数据库保存结果,并提供增删查改的接口
from Tkinter import *
from StringIO import StringIO
from tkSimpleDialog import *
import sys
import Pmw
import ConfigParser
import os
import wx
class Finder(Frame):
def OnFind(self):
#执行,并获取结果
info = self.inputStr.get()
if len(info)==0:
return True
buff =StringIO()
temp = sys.stdout #保存标准I/O流
sys.stdout = buff #将标准I/O流重定向到buff对象
self.text.delete(1.0, END)
try:
fmt = 'help('+info+')'
result = eval(fmt)
self.text.insert(1.0, buff.getvalue())
self.savebtn.config(state=NORMAL)
except:
try:
__import__(info)
fmt = 'help('+self.inputStr.get()+')'
result = eval(fmt)
self.text.insert(1.0, buff.getvalue())
except:
self.text.insert(1.0,"ERROR.")
sys.stdout =temp #恢复标准I/O流buff.getvaue()
self.helpbtn.config(state=NORMAL)
def save(self):
#搜索,如果没有找到就保存,使用ini文件进行,保存数据
#保存原始
tofind = self.inputStr.get()
if len(tofind)==0:
return
filename='s_'+tofind+'.ini'
fout = open(filename,'w')
fout.write(self.text.get(1.0, END).encode('utf-8'))
fout.close()
self.items.append(tofind)
self.items.sort()
self.config.add_section(tofind)
self.config.write(open('data.ini', 'r+'))
nindex = self.items.index(tofind)
self.box.delete(0,END)
self.box.insert(0, *self.items)
self.box.see(nindex)
self.box.selection_set(nindex)
self.savebtn.config(state=DISABLED)
def saveas(self):
#保存修改
index = self.box.curselection()
if index<0:
return
tofind = self.box.get(index)
if len(tofind)==0:
return
strinfo = self.text.get(1.0, END)
filename='s_'+tofind+'.ini'
fout = open(filename,'w')
fout.write(strinfo.encode("UTF-8"))
fout.close()
self.saveasbtn.config(state=DISABLED)
def __init__(self):
Frame.__init__(self)
self.option_add('*Font', 'Verdana 12 bold')
self.pack(expand=YES, fill=BOTH)
self.master.title(u'Python函数查询器')
self.master.iconname("calc1")
#左侧列表,放置已保存的条目,按照字母顺序排序
infoF = Frame(self)
infoF.pack(side=LEFT,expand=NO, fill=BOTH)
listF = Frame(infoF)
listF.pack(side=TOP,expand=YES, fill=BOTH)
#获取项目
self.config = ConfigParser.ConfigParser()
self.config.read('data.ini')
self.items = self.config.sections()
self.items.sort()
self.box = Listbox(listF,width=15,selectmode=SINGLE)
self.box.insert(0, *self.items)
self.box.bind('
self.box.bind('
self.PopupMenu=Menu(listF)
self.PopupMenu.add_command(label=u'删除',command=self.deleteitem)
self.PopupMenu.add_command(label=u'重命名',command=self.renameitem)
self.box.pack(side=LEFT,expand=YES,fill=BOTH)
self.slbar = Scrollbar(listF, orient=VERTICAL, command=self.box.yview)
self.slbar.pack(side=RIGHT, expand=NO, fill=BOTH)
self.box.configure(yscrollcommand=self.slbar.set)
btnf = Frame(infoF)
btnf.pack(side=BOTTOM, fill=BOTH)
self.savebtn = Button(btnf, text=u'新建保存',state=DISABLED, command=self.save)
self.savebtn.pack(side=LEFT, expand=YES, fill=BOTH)
self.saveasbtn = Button(btnf, text=u'保存修改',state=DISABLED, command=self.saveas)
self.saveasbtn.pack(side=RIGHT, expand=YES, fill=BOTH)
#包括列表信息和显示信息
twoF = Frame(self)
twoF.pack(side=BOTTOM, expand=YES, fill=BOTH)
#显示信息、滚动条
showF = Frame(twoF, relief=SUNKEN)
self.text = Text(showF,height=25, width =65)
self.text.insert(1.0,'information...')
self.text.pack(side=LEFT, expand=YES, fill=BOTH)
self.text.bind("
self.text.bind("
self.ismodified = False
showF.pack(side=TOP,expand=YES, fill=BOTH)
self.scrollbar = Scrollbar(showF, orient=VERTICAL, command=self.text.yview)
self.scrollbar.pack(side=RIGHT, expand=NO, fill=BOTH)
self.text.configure(yscrollcommand=self.scrollbar.set)
#提供输入接口,和功能如:查找
inputF = Frame(twoF)
inputF.pack(side=BOTTOM, fill=BOTH)
self.inputStr = StringVar()
self.inputStr.set('')
self.info = StringVar()
self.info.set('infomation...')
self.entry = Entry(inputF,lief=SUNKEN, textvariable=self.inputStr)
self.entry.bind("
self.entry.pack(side=LEFT, Expand=YES, fill=BOTH)
self.fidbtn = Button(inputF,text=u'查找',command=self.OnFind)
self.fidbtn.pack(side=LEFT, Expand=YES, fill=BOTH)
self. helpbtn = Button(inputF,text=u'帮助',command=self.OnHelp)
self.helpbtn.pack(expand=NO, fill=Y)
def OnHelp(self):
fp = open('readme.txt')
buff = fp.read()
fp.close()
self.text.delete(1.0, END)
self. text.insert(1.0, buff)
self.helpbtn.config(state=DISABLED)
def deleteitem(self):
#右键菜单, 删除功能
sels = self.box .curselection()
if len(sels) == 0:
pass #print '選択なし'
else:
sec = self.items[int(sels[0])]
self.config.remove_section(sec)
self.config.write(open('data.ini', 'w'))
self.box.delete(sels[0])
# self .items.remove(sels[0]) #是引用效果
self.text.delete(1.0, END)
self.text.insert(1.0,'削除成功。')
def renameitem(self,event=None,en=None):
#邮件菜单, 重命名功能
retval = askstring("input",
"新しい名前を入力してください:")
if len(retval)==0:
return
sels = self.box.curselection()
if len(sels) == 0:
pass #print '選択なし'
else:
#数组/表/配置文件
sec = self.items[int(sels[0])]
self.box.delete(0, END)
self.items[int(sels[0])] = retval #数组
self.items.sort()
self.box.insert(0, *self.items) #表
self.config.remove_section(sec)
self.config.add_section(retval)
self.config.write(open('data.ini', 'w')) #配置文件
self.text.delete(1.0, END)
self.text.insert(1.0,'名前変更成功。')
def boxrightmenu(self,event=None,en=None):
#弹出右键菜单
self.PopupMenu.tk_popup(*self.winfo_pointerxy())
def tomodify(self,event=None,en=None):
if self.ismodified ==True:
self.saveasbtn.config(state=DISABLED)
self.ismodified = False
else:
self.saveasbtn.config(state=NORMAL)
self.ismodified = True
return True
defmodify(self,event=None,en=None):
self.saveasbtn.config(state=NORMAL)
return True
def inputreturn(self,event=None,en=None):
self.OnFind()
return True
def selectCommand(self,event=None,en=None):
# 选中列表時、显示详细内容
sels = self.box.curselection()
if len(sels) == 0:
pass
else:
filename='s_'+ self.box.get(sels[0])+'.ini'
fp = open(filename)
strinfo = fp.read()
fp.close()
self.text。 delete(1.0, END)
self.text.insert(1.0,strinfo)
self.helpbtn.config(state=NORMAL)
if __name__ == '__main__':
ファインダー().mainloop()
注: ソース コード ファイルを正しく実行したい場合は、readme.txt ファイルと data.ini ファイルを自分で作成してください。そうしないと、これら 2 つのファイルを開くことができないため、エラーが発生します。例外処理が使用されないのはなぜですか?そこまで完璧にはしていません。このバージョンは現在利用可能ですので、ぜひ試してみてください。
すべての完全なファイルについては、「添付ファイルのダウンロード」をクリックしてダウンロードしてください。
[注]: ソフトウェアを開いた後、クエリするリスト、タプル、辞書などのタイプを入力し、[新規保存] をクリックしてリストに保存し、次回すぐに開くことができます。
コーデックなど、一部のパッケージはソース コードに含まれていません。現時点では、インポート コーデックなどのクエリを実行するには、このパッケージをソース ファイルの先頭に手動で追加する必要があります。
表示ボックス内のテキストを変更した場合は、[変更を保存] をクリックして保存し、次回開いたときに変更の効果を確認できるようにしてください。
このバージョンは完全ではなく、機能が制限されているため、主に Python 開発アプリケーションの例として使用されます。
変更コメントがある場合はメッセージを残してください。
2011-03-10 12:15:05
一部のネチズンは、このソース コードを正しく実行できないと報告しました。よく考えてみると、バージョンは関係ないと思います。これらは非常に基本的な機能と使い方です。実行できない場合は、Pmw および wx パッケージを正しくインストールしてみてください。
1. Pmw のインストール方法は次のとおりです:
ダウンロード: Pmw.1.3.2.tar.gz。これは簡単に見つかります。Baidu で検索してください。ダウンロード後、その場で解凍し、「Pmw」ディレクトリを見つけて、このディレクトリを Python のインストール ディレクトリにコピーします。他の特定のディレクトリは必要ありません。 「C:Python27」をクリックするだけです。他の Python バージョンの場合は、それに応じて調整してください。
2. wx のインストール方法は次のとおりです:
ダウンロード: wxPython2.8-win32-unicode-2.8.11.0-py27.exe。これについては、Baidu を検索してください。wxPython の英語の公式 Web サイトからダウンロードするのが最善であると考えられます。多くの中国語 Web サイトでもダウンロードが提供されているため、見つけるのは難しくありません。ダブルクリックするだけでデフォルトの方法でインストールできます。ディレクトリなどを変更する必要はありません。これは、インストール ディレクトリに自動的にインストールされます。私のディレクトリは C:Python27Libsite-packageswx-2.8-msw-unicode です。
3. Tkinter ライブラリはシステムに統合されており、インストールは必要ありません。主に上記2つのライブラリが利用可能です。
4. 正しくインストールされているかどうかを確認するにはどうすればよいですか?
インストール後、Python のコマンドライン import wx または import Pmw を入力して、入力が正しいかどうかを確認してください。プロンプトメッセージが表示されない場合は正常です。 dir (wx) または dir (Pmw) を入力して、パッケージ内の情報をさらに確認することもできます。 help() 関数を使用することはお勧めできません。wx の情報は 10MB もあり、すべてを表示することはできません。画面を常に更新することは好ましくありません。

ホットAIツール

Undresser.AI Undress
リアルなヌード写真を作成する AI 搭載アプリ

AI Clothes Remover
写真から衣服を削除するオンライン AI ツール。

Undress AI Tool
脱衣画像を無料で

Clothoff.io
AI衣類リムーバー

AI Hentai Generator
AIヘンタイを無料で生成します。

人気の記事

ホットツール

メモ帳++7.3.1
使いやすく無料のコードエディター

SublimeText3 中国語版
中国語版、とても使いやすい

ゼンドスタジオ 13.0.1
強力な PHP 統合開発環境

ドリームウィーバー CS6
ビジュアル Web 開発ツール

SublimeText3 Mac版
神レベルのコード編集ソフト(SublimeText3)

ホットトピック











Xuexin.com で私の学歴を確認するにはどうすればよいですか? Xuexin.com で学歴を確認できますが、多くのユーザーは Xuexin.com で学歴を確認する方法を知りません。次に、エディターが Xuexin.com で学歴を確認する方法に関するグラフィック チュートリアルを提供します。興味のあるユーザーはぜひ見に来てください! Xuexin.com の使用方法チュートリアル: Xuexin.com で学歴を確認する方法 1. Xuexin.com の入り口: https://www.chsi.com.cn/ 2. Web サイトのクエリ: ステップ 1: Xuexin.com のアドレスをクリックします。上記をクリックしてホームページに入ります [教育クエリ]をクリックします; ステップ2: 最新のWebページで下図の矢印に示すように[クエリ]をクリックします; ステップ3: 新しいページで[学術単位ファイルにログイン]をクリックします; ステップ4: ログインページで情報を入力し、[ログイン]をクリックします。

12306 チケット予約アプリの最新バージョンをダウンロードします。誰もが非常に満足している旅行チケット購入ソフトウェアです。行きたい場所に行くのに非常に便利です。ソフトウェアには多くのチケット ソースが提供されています。本物のチケットを渡すだけで済みます。 - 氏名認証によるオンラインチケット購入 全ユーザー 旅行券や航空券を簡単に購入でき、さまざまな割引が受けられます。また、チケットを入手するための事前予約も開始できます。ホテルや特別な車の送迎も予約できます。これを使用すると、ワンクリックで行きたい場所に行き、チケットを購入できます。旅行がより簡単で便利になり、すべての人に旅行体験を提供します編集者はオンラインで詳細を説明するようになり、12306 人のユーザーに過去のチケット購入記録を表示する方法が提供されます。 1. Railway 12306 を開き、右下隅の [My] をクリックして、[My Order] をクリックします。 2. 注文ページで [Paid] をクリックします。 3. 有料ページにて

Apple の携帯電話を使用してアクティベーション日を確認する場合、携帯電話のシリアル番号から確認するのが最善の方法ですが、Apple の公式 Web サイトにアクセスし、コンピュータに接続して 3 番目のバージョンをダウンロードすることでも確認できます。 -party ソフトウェアを使用して確認します。 Apple 携帯電話のアクティベーション日を確認する方法 回答: シリアル番号のクエリ、Apple 公式 Web サイトのクエリ、コンピュータのクエリ、サードパーティ ソフトウェアのクエリ 1. ユーザーにとって最善の方法は、自分の携帯電話のシリアル番号を知ることです。シリアル番号を確認するには、[設定]、[一般]、[このマシンについて] を開きます。 2. シリアル番号を使用すると、携帯電話のアクティベーション日を知るだけでなく、携帯電話のバージョン、携帯電話の製造元、携帯電話の工場出荷日などを確認することもできます。 3. ユーザーは Apple の公式 Web サイトにアクセスしてテクニカル サポートを見つけ、ページの下部にあるサービスと修理の欄を見つけて、そこで iPhone のアクティベーション情報を確認します。 4. ユーザー

タイトル: Oracle を使用してテーブルがロックされているかどうかをクエリする方法Oracle データベースでは、テーブル ロックとは、トランザクションがテーブルに対して書き込み操作を実行しているときに、他のトランザクションがテーブルに対して書き込み操作を実行したり、テーブルに構造変更 (列の追加、行の削除など) を加えたりするときにブロックされることを意味します。 、など)。実際の開発プロセスでは、トラブルシューティングを改善し、関連する問題に対処するために、テーブルがロックされているかどうかをクエリする必要があることがよくあります。この記事では、Oracle ステートメントを使用してテーブルがロックされているかどうかをクエリする方法と、具体的なコード例を紹介します。テーブルがロックされているかどうかを確認するには、

MySQL と PL/SQL は 2 つの異なるデータベース管理システムであり、それぞれリレーショナル データベースと手続き型言語の特性を表しています。この記事では、具体的なコード例を示しながら、MySQL と PL/SQL の類似点と相違点を比較します。 MySQL は、構造化照会言語 (SQL) を使用してデータベースを管理および操作する、一般的なリレーショナル データベース管理システムです。 PL/SQL は Oracle データベースに固有の手続き型言語であり、ストアド プロシージャ、トリガー、関数などのデータベース オブジェクトを記述するために使用されます。同じ

通神コインの最新価格を確認するにはどうすればよいですか?トークンは、ゲーム内アイテム、サービス、アセットの購入に使用できるデジタル通貨です。これは分散型であり、政府や金融機関によって管理されていないことを意味します。通神コインの取引はブロックチェーン上で行われます。ブロックチェーンは、通神コインのすべての取引情報を記録する分散台帳です。トークンの最新の価格を確認するには、次の手順を使用できます。 信頼できる価格確認 Web サイトまたはアプリを選択します。一般的に使用される価格クエリ Web サイトには、次のものがあります。 CoinMarketCap: https://coinmarketcap.com/Coindesk: https://www.coindesk.com/ Binance: https://www.bin

フォーラムはインターネット上で最も一般的な Web サイト形式の 1 つで、ユーザーに情報を共有し、交換し、議論するためのプラットフォームを提供します。 Discuz は一般的に使用されているフォーラム プログラムであり、多くのウェブマスターはすでによく知っていると思います。 Discuz フォーラムの開発および管理中に、分析または処理のためにデータベース内のデータをクエリすることが必要になることがよくあります。この記事では、Discuz データベースの場所をクエリするためのヒントをいくつか紹介し、具体的なコード例を示します。まず、Discuz のデータベース構造を理解する必要があります。

INJ コインの最新価格を確認する INJ コインは、InjectiveProtocol によって開発されたイーサリアム ブロックチェーンに基づく分散型金融 (DeFi) トークンであり、デリバティブ取引のための効率的かつ透明なプラットフォームを提供することを目的としています。保有者は、INJ コインを使用して取引手数料を支払い、ステークして報酬を受け取り、InjectiveProtocol のガバナンスに参加できます。発行される INJ トークンの総量は限られているため、希少性があり、価値を保存できる可能性があります。 InjectiveProtocol のビジョンは、INJ トークンを通じてより広範な金融包摂を促進し、オープンで国境のない金融サービス体験をユーザーに提供することです。 INJ トークンの使用は、DeFi 業界の革新的な発展を促進するだけでなく、ユーザーに次のことを提供します。
