検索
ホームページバックエンド開発Python チュートリアル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 indexreturn
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.selectionCommand)#使用鼠标释放消息
self.box.bind('',self.boxrightmenu)#使用右键菜单删除项目

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.modify)
self.text.bind("", self.tomodify)
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.inputreturn)
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 もあり、すべてを表示することはできません。画面を常に更新することは好ましくありません。
声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
Python函数介绍:abs函数的用法和示例Python函数介绍:abs函数的用法和示例Nov 03, 2023 pm 12:05 PM

Python函数介绍:abs函数的用法和示例一、abs函数的用法介绍在Python中,abs函数是一个内置函数,用于计算给定数值的绝对值。它可以接受一个数字参数,并返回该数字的绝对值。abs函数的基本语法如下:abs(x)其中,x是要计算绝对值的数值参数,可以是整数或浮点数。二、abs函数的示例下面我们将通过一些具体的示例来展示abs函数的用法:示例1:计算

如何解决Python的函数中的硬编码错误?如何解决Python的函数中的硬编码错误?Jun 25, 2023 pm 08:15 PM

随着Python编程语言的广泛应用,开发者们常常会在编写程序过程中遇到“硬编码错误”的问题。所谓“硬编码错误”,指的是将具体的数值、字符串等数据直接写入代码中,而不是将其定义为常量或变量。这一做法存在多方面的问题,比如可读性低,难维护、修改和测试,同时也会增加出错的可能性。本篇文章就如何解决Python函数中的硬编码错误这一问题进行探讨。一、什么是硬

Python函数介绍:isinstance函数的用法和示例Python函数介绍:isinstance函数的用法和示例Nov 04, 2023 pm 03:15 PM

Python函数介绍:isinstance函数的用法和示例Python是一门功能强大的编程语言,提供了许多内置函数,使得编程变得更加方便和高效。其中一个非常有用的内置函数是isinstance()函数。本文将介绍isinstance函数的用法和示例,并提供具体的代码示例。isinstance()函数用于判断一个对象是否是指定的类或类型的实例。该函数的语法如下

Python函数介绍:dir函数的用法和示例Python函数介绍:dir函数的用法和示例Nov 03, 2023 pm 01:28 PM

Python函数介绍:dir函数的用法和示例Python是一种开源的、高级的、解释性的编程语言。它可用于开发各种类型的应用程序,包括Web应用程序、桌面应用程序和游戏等。Python提供了大量的内置函数和模块,这些函数和模块可以帮助程序员快速编写高效的Python代码。其中,dir函数是一个非常有用的内置函数,它可以帮助程序员查看对象、模块或类中的属性和方法

如何通过优化查询中的LIKE操作来提高MySQL性能如何通过优化查询中的LIKE操作来提高MySQL性能May 11, 2023 am 08:11 AM

MySQL是目前最流行的关系型数据库之一,但是在处理大量数据时,MySQL的性能可能会受到影响。其中,一种常见的性能瓶颈是查询中的LIKE操作。在MySQL中,LIKE操作是用来模糊匹配字符串的,它可以在查询数据表时用来查找包含指定字符或者模式的数据记录。但是,在大型数据表中,如果使用LIKE操作,它会对数据库的性能造成影响。为了解决这个问题,我们可

Python函数介绍:filter函数的作用和示例Python函数介绍:filter函数的作用和示例Nov 04, 2023 am 10:13 AM

Python函数介绍:filter函数的作用和示例Python是一种功能强大的编程语言,提供了许多内置的函数,其中之一就是filter函数。filter函数用于过滤列表中的元素,并返回满足指定条件的元素组成的新列表。在本文中,我们将介绍filter函数的作用,并提供一些示例来帮助读者理解其用法和潜力。filter函数的语法如下:filter(function

如何解决Python的函数中的并发不安全错误?如何解决Python的函数中的并发不安全错误?Jun 24, 2023 pm 12:37 PM

Python是一门流行的高级编程语言,它具有简单易懂的语法、丰富的标准库和开源社区的支持,而且还支持多种编程范式,例如面向对象编程、函数式编程等。尤其是Python在数据处理、机器学习、科学计算等领域有着广泛的应用。然而,在多线程或多进程编程中,Python也存在一些问题。其中之一就是并发不安全。本文将从以下几个方面介绍如何解决Python的函数中的并发不安

Python函数介绍:range函数的介绍及示例Python函数介绍:range函数的介绍及示例Nov 04, 2023 am 10:10 AM

Python函数介绍:range函数的介绍及示例Python是一种广泛应用于各种领域的高级编程语言,它具有简单易学的特点,并且有着丰富的内置函数库。其中,range函数是Python中常用的一个内置函数之一。本文将详细介绍range函数的功能以及使用方法,并通过实例来演示其具体的应用。range函数是用来生成一个整数序列的函数,它接受三个参数,分别是起始值(

See all articles

ホットAIツール

Undresser.AI Undress

Undresser.AI Undress

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

AI Clothes Remover

AI Clothes Remover

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

Undress AI Tool

Undress AI Tool

脱衣画像を無料で

Clothoff.io

Clothoff.io

AI衣類リムーバー

AI Hentai Generator

AI Hentai Generator

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

ホットツール

VSCode Windows 64 ビットのダウンロード

VSCode Windows 64 ビットのダウンロード

Microsoft によって発売された無料で強力な IDE エディター

MantisBT

MantisBT

Mantis は、製品の欠陥追跡を支援するために設計された、導入が簡単な Web ベースの欠陥追跡ツールです。 PHP、MySQL、Web サーバーが必要です。デモおよびホスティング サービスをチェックしてください。

mPDF

mPDF

mPDF は、UTF-8 でエンコードされた HTML から PDF ファイルを生成できる PHP ライブラリです。オリジナルの作者である Ian Back は、Web サイトから「オンザフライ」で PDF ファイルを出力し、さまざまな言語を処理するために mPDF を作成しました。 HTML2FPDF などのオリジナルのスクリプトよりも遅く、Unicode フォントを使用すると生成されるファイルが大きくなりますが、CSS スタイルなどをサポートし、多くの機能強化が施されています。 RTL (アラビア語とヘブライ語) や CJK (中国語、日本語、韓国語) を含むほぼすべての言語をサポートします。ネストされたブロックレベル要素 (P、DIV など) をサポートします。

ドリームウィーバー CS6

ドリームウィーバー CS6

ビジュアル Web 開発ツール

SublimeText3 Mac版

SublimeText3 Mac版

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