{"id":952,"date":"2020-03-26T00:00:02","date_gmt":"2020-03-25T15:00:02","guid":{"rendered":"https:\/\/www.ishikawasekkei.com\/?p=952"},"modified":"2020-03-24T22:22:54","modified_gmt":"2020-03-24T13:22:54","slug":"tkinter-make-shulte-table-2","status":"publish","type":"post","link":"https:\/\/www.ishikawasekkei.com\/index.php\/2020\/03\/26\/tkinter-make-shulte-table-2\/","title":{"rendered":"Tkinter\u3067\u30b7\u30e5\u30eb\u30c6\u30fb\u30c6\u30fc\u30d6\u30eb\u3092\u3064\u304f\u308b \u30ea\u30d5\u30a1\u30af\u30bf\u30ea\u30f3\u30b0\u7de8"},"content":{"rendered":"\n<p>\u3000\u4eca\u65e5\u3082\u898b\u306b\u6765\u3066\u304f\u3060\u3055\u3063\u3066\u3042\u308a\u304c\u3068\u3046\u3054\u3056\u3044\u307e\u3059\u3002\u307e\u3060\u3001\u671d\u306f\u808c\u5bd2\u3044\u3067\u3059\u306d\u3047\u3002<\/p>\n\n\n\n<p>\u3000\u3055\u3066\u3001\u4e88\u8a00\u901a\u308a\u3001\u5148\u65e5\u306e\u30b9\u30af\u30ea\u30d7\u30c8\u3092\u30ea\u30d5\u30a1\u30af\u30bf\u30ea\u30f3\u30b0\u3057\u305f\u3044\u3068\u601d\u3044\u307e\u3059\u3002\u30dd\u30a4\u30f3\u30c8\u306f\u3001\u307e\u305a\u3001Frame\u3092\u7d99\u627f\u3057\u3066\u3044\u308b\u3068\u3053\u308d\u3067\u3059\u306d\u3002\u6b21\u306f\u3001\u30b3\u30f3\u30b9\u30bf\u30f3\u30c8\u5024\u3092\u5b9a\u7fa9\u3057\u3066\u3044\u308b\u3068\u3053\u308d\u3001\u305d\u3057\u3066\u3001\u5927\u67a0\u3068\u30c6\u30ad\u30b9\u30c8\u3092\u30ea\u30d5\u30ec\u30c3\u30b7\u30e5\u3057\u3066\u3044\u308b\u3068\u3053\u308d\u3092\u5206\u96e2\u3059\u308b\u3068\u3053\u308d\u3067\u3057\u3087\u3046\u304b\u3002\u3061\u3087\u3063\u3068\u3084\u3063\u3066\u307f\u305f\u3044\u3068\u601d\u3044\u307e\u3059\u3002<\/p>\n\n\n\n<h2 class=\"wp-block-heading\">Frame\u306e\u5909\u66f4<\/h2>\n\n\n\n<p>\u3000\u307e\u305a\u306f\u3001\u5358\u7d14\u306bFrame\u3092Tk\u306b\u7f6e\u304d\u63db\u3048\u3066\u307f\u307e\u3059\u3002\u305d\u3057\u3066\u3001\u5b9f\u884c\u3002<\/p>\n\n\n\n<pre class=\"EnlighterJSRAW\" data-enlighter-language=\"generic\" data-enlighter-theme=\"\" data-enlighter-highlight=\"\" data-enlighter-linenumbers=\"\" data-enlighter-lineoffset=\"\" data-enlighter-title=\"\" data-enlighter-group=\"\">(base) C:\\work\\tkinter_example>python SchulteTable2.py\nTraceback (most recent call last):\n  File \"SchulteTable2.py\", line 73, in &lt;module>\n    shulteTable = SchulteTable()\n  File \"SchulteTable2.py\", line 22, in __init__\n    super().__init__(master)\n  File \"C:\\ProgramData\\Anaconda3\\lib\\tkinter\\__init__.py\", line 2023, in __init__\n    self.tk = _tkinter.create(screenName, baseName, className, interactive, wantobjects, useTk, sync, use)\nTypeError: create() argument 1 must be str or None, not Tk\n\n(base) C:\\work\\tkinter_example><\/pre>\n\n\n\n<p>\u3000\u601d\u3063\u305f\u901a\u308a\u3001\u30a8\u30e9\u30fc\u304c\u3067\u307e\u3057\u305f\u304c\u3001\u3001\u3001\u307e\u305a\u306f\u3001Tk\u306e\u521d\u671f\u5316\u3001__init__()\u306e\u3068\u3053\u308d\u3067\u3059\u306d\u3002\u30a2\u30d7\u30ea\u30b1\u30fc\u30b7\u30e7\u30f3\u30ec\u30d9\u30eb\u306e\u521d\u671f\u5316\u306b\u306a\u308a\u307e\u3059\u306e\u3067\u3001master\u3092\u30d1\u30e9\u30e1\u30fc\u30bf\u3067\u53d7\u3051\u53d6\u308b\u5fc5\u8981\u306f\u3042\u308a\u307e\u305b\u3093\u3002<code>master<\/code>\u95a2\u9023\u3092\u524a\u9664\u3057\u3066\u3044\u304d\u305f\u3044\u3068\u601d\u3044\u307e\u3059\u3002\u305d\u3046\u3059\u308b\u3068\u3001\u30bf\u30a4\u30c8\u30eb\u306e\u8a2d\u5b9a\u3082\u3001<code>self.master.title(\"Schulte Table\")<\/code>\u3067\u306f\u306a\u304f\u3066\u3001<code>self.title(\"Schulte Table\")<\/code>\u3068\u5909\u66f4\u3059\u308b\u5fc5\u8981\u304c\u3042\u308a\u307e\u3059\u306d\u3002\u3042\u3068\u3001<code>self.pack()<\/code>\u3068\u306a\u3063\u3066\u3044\u308b\u90e8\u5206\u3082Frame\u3067\u306f\u306a\u304f\u306a\u3063\u305f\u306e\u3067\u3001\u524a\u9664\u3057\u307e\u3059\u3002\u3042\u3068\u306f\u3001import\u304b\u3089\u3082Frame\u3092\u524a\u9664\u3057\u307e\u3057\u3087\u3046\u3002\u3053\u308c\u3060\u3051\u3067\u3082<code>__init__()<\/code>\u304c\u968f\u5206\u3068\u30b9\u30c3\u30ad\u30ea\u3057\u307e\u3057\u305f\u306d\u3002<\/p>\n\n\n\n<h3 class=\"wp-block-heading\">\u4fee\u6b63\u524d\u306e__init__()<\/h3>\n\n\n\n<pre class=\"EnlighterJSRAW\" data-enlighter-language=\"python\" data-enlighter-theme=\"\" data-enlighter-highlight=\"\" data-enlighter-linenumbers=\"\" data-enlighter-lineoffset=\"\" data-enlighter-title=\"\" data-enlighter-group=\"\">    def __init__(self, master=None):\n        if master == None:\n            master = Tk()\n        super().__init__(master)\n        master.title(\"Schulte Table\")\n        self.master = master\n        self.pack()\n        self.create_widgets()\n        self.bind(\"&lt;Button-1>\", self.redraw_text)<\/pre>\n\n\n\n<h3 class=\"wp-block-heading\">\u4fee\u6b63\u5f8c\u306e__init__()<\/h3>\n\n\n\n<pre class=\"EnlighterJSRAW\" data-enlighter-language=\"python\" data-enlighter-theme=\"\" data-enlighter-highlight=\"\" data-enlighter-linenumbers=\"\" data-enlighter-lineoffset=\"\" data-enlighter-title=\"\" data-enlighter-group=\"\">    def __init__(self):\n        super().__init__()\n        self.title(\"Schulte Table\")\n        self.create_widgets()\n        self.bind(\"&lt;Button-1>\", self.redraw_text)\n<\/pre>\n\n\n\n<p>\u3000\u5b9f\u884c\u3057\u3066\u307f\u305f\u3068\u3053\u308d\u3001\u307e\u305f\u3057\u3066\u3082\u30a8\u30e9\u30fc\u304c\u767a\u751f\u3057\u307e\u3057\u305f\u3002<\/p>\n\n\n\n<pre class=\"EnlighterJSRAW\" data-enlighter-language=\"generic\" data-enlighter-theme=\"\" data-enlighter-highlight=\"\" data-enlighter-linenumbers=\"\" data-enlighter-lineoffset=\"\" data-enlighter-title=\"\" data-enlighter-group=\"\">(base) C:\\work\\tkinter_example>python SchulteTable2.py\nTraceback (most recent call last):\n  File \"SchulteTable2.py\", line 73, in &lt;module>\n    shulteTable = SchulteTable()\n  File \"SchulteTable2.py\", line 22, in __init__\n    super().__init__(master)\n  File \"C:\\ProgramData\\Anaconda3\\lib\\tkinter\\__init__.py\", line 2023, in __init__\n    self.tk = _tkinter.create(screenName, baseName, className, interactive, wantobjects, useTk, sync, use)\nTypeError: create() argument 1 must be str or None, not Tk\n\n(base) C:\\work\\tkinter_example>python SchulteTable2.py\nTraceback (most recent call last):\n  File \"SchulteTable2.py\", line 69, in &lt;module>\n    shulteTable = SchulteTable()\n  File \"SchulteTable2.py\", line 22, in __init__\n    self.create_widgets()\n  File \"SchulteTable2.py\", line 38, in create_widgets\n    command=self.master.destroy)\nAttributeError: 'NoneType' object has no attribute 'destroy'\n\n(base) C:\\work\\tkinter_example><\/pre>\n\n\n\n<p>\u3000\u3048\u3048\u3068\u3001<code>destroy<\/code>\u3068\u3044\u3046\u5c5e\u6027\u306f\u3042\u308a\u307e\u305b\u3093\u3088\u3001\u3068\u8a00\u308f\u308c\u3066\u3044\u307e\u3059\u306d\u3002<code>destroy<\/code>\u306f<code>Tk<\/code>\u306e\u5c5e\u6027\u3067\u3057\u305f\u306d\u3002<code>Frame<\/code>\u3092\u4f7f\u3063\u3066\u3044\u305f\u304b\u3089\u3001\u305d\u306e\u89aa\u306e<code>master<\/code>\u304b\u3089\u547c\u3073\u51fa\u3057\u3066\u3044\u305f\u306e\u3067\u3057\u305f\u3002\u306a\u306e\u3067\u3001\u3053\u3053\u306e<code>self.master.destroy<\/code>\u306f\u3001<code>self.destroy<\/code>\u306b\u5909\u66f4\u3057\u307e\u3059\u3002\u518d\u5ea6\u5b9f\u884c\u3057\u3066\u307f\u307e\u3059\u3068\u3001\u753b\u9762\u306f\u30d0\u30c3\u30c1\u30ea\u8868\u793a\u3055\u308c\u307e\u3057\u305f\u304c\u3001\u30af\u30ea\u30c3\u30af\u3059\u308b\u3068\u30a8\u30e9\u30fc\u304c\u3067\u307e\u3057\u305f\u3002<\/p>\n\n\n\n<pre class=\"EnlighterJSRAW\" data-enlighter-language=\"generic\" data-enlighter-theme=\"\" data-enlighter-highlight=\"\" data-enlighter-linenumbers=\"\" data-enlighter-lineoffset=\"\" data-enlighter-title=\"\" data-enlighter-group=\"\">(base) C:\\work\\tkinter_example>python SchulteTable2.py\nException in Tkinter callback\nTraceback (most recent call last):\n  File \"C:\\Users\\me-ishikawa\\AppData\\Local\\Continuum\\anaconda3\\lib\\tkinter\\__init__.py\", line 1705, in __call__\n    return self.func(*args)\n  File \"SchulteTable2.py\", line 43, in redraw_text\n    messagebox.showinfo(\"\u7d50\u679c\",f\"\u304b\u304b\u3063\u305f\u6642\u9593\u306f\u3001{self.elapse_time:0.2f}\u79d2\u3067\u3059\u3002\")\n  File \"C:\\Users\\me-ishikawa\\AppData\\Local\\Continuum\\anaconda3\\lib\\tkinter\\__init__.py\", line 2101, in __getattr__\n    return getattr(self.tk, attr)\nAttributeError: '_tkinter.tkapp' object has no attribute 'elapse_time'\n<\/pre>\n\n\n\n<p>\u3000\u307b\u304a\u3001<code>elapse_time<\/code>\u304c\u3042\u308a\u307e\u305b\u3093\u3001\u3068\u304a\u3063\u3057\u3083\u3044\u307e\u3059\u304b\u3002\u306a\u308b\u307b\u3069\u3001<code>self.text<\/code>\u304c\u5b58\u5728\u3057\u306a\u3044\u306e\u3067\u3001<code>redraw_text<\/code>\u304c\u3046\u307e\u304f\u52d5\u4f5c\u3057\u3066\u3044\u306a\u3044\u3088\u3046\u3067\u3059\u3002\u306a\u305c\u3001<code>text<\/code>\u3092<code>__init__()<\/code>\u3067\u521d\u671f\u5316\u3057\u306a\u304b\u3063\u305f\u306e\u3067\u3057\u3087\u3046\u306d\u3002\u3061\u3087\u3063\u3068\u8b0e\u3067\u3059\u304c\u3001\u904e\u53bb\u306e\u3053\u3068\u306f\u8ffd\u6c42\u3057\u3066\u3082\u308f\u304b\u308a\u307e\u305b\u3093\u3002<code>self.text<\/code>\u306b\u5909\u66f4\u3057\u3066<code>__init__()<\/code>\u306e\u4e2d\u3078\u79fb\u52d5\u3057\u3066\u521d\u671f\u5316\u3059\u308b\u3088\u3046\u5909\u66f4\u3057\u307e\u3059\u3002<\/p>\n\n\n\n<p>\u3000\u521d\u671f\u5316\u306e\u554f\u984c\u306f\u89e3\u6c7a\u3067\u304d\u305f\u3088\u3046\u3067\u3059\u304c\u3001\u6319\u52d5\u304c\u304a\u304b\u3057\u304f\u306a\u308a\u307e\u3057\u305f\u3002\u30af\u30ea\u30c3\u30af\u3057\u3066\u30b9\u30bf\u30fc\u30c8\u3059\u308b\u306e\u306f\u554f\u984c\u306a\u3055\u305d\u3046\u3067\u3059\u3002\u305f\u3060\u30b9\u30bf\u30fc\u30c8\u3057\u305f\u3042\u3068\u306b\u518d\u5ea6\u30af\u30ea\u30c3\u30af\u3057\u305f\u3089\u505c\u6b62\u3059\u308b\u306f\u305a\u306a\u306e\u3067\u3059\u3051\u3069\u3001\u30af\u30ea\u30c3\u30af\u3059\u308b\u4f4d\u7f6e\u306b\u3088\u3063\u3066\u306f\u3001\u505c\u6b62\u3057\u305f\u5f8c\u3059\u3050\u306b\u307e\u305f\u30b9\u30bf\u30fc\u30c8\u3057\u3066\u3057\u307e\u3044\u307e\u3059\u3002\u30a4\u30d9\u30f3\u30c8\u306e\u30d0\u30a4\u30f3\u30c9\u306b\u554f\u984c\u304c\u3042\u308b\u3088\u3046\u3067\u3059\u3002\u6319\u52d5\u304b\u3089\u8003\u3048\u308b\u3068\u3001<code>Tk<\/code>\u3092\u7d99\u627f\u3057\u305f\u30c8\u30c3\u30d7\u30ec\u30d9\u30eb\u3067\u30d0\u30a4\u30f3\u30c9\u3057\u3066\u3001\u3055\u3089\u306b\u305d\u306e\u5b50\u4f9b\u306e\u30a6\u30a3\u30b8\u30a7\u30c3\u30c8\u306b\u3082\u30d0\u30a4\u30f3\u30c9\u3057\u305f\u3068\u304d\u306b\u3001\u30a4\u30d9\u30f3\u30c8\u306b\u5bfe\u3059\u308b\u51e6\u7406\u3092\u4e8c\u5ea6\u5b9f\u884c\u3057\u3066\u3057\u307e\u3063\u3066\u3044\u308b\u3088\u3046\u3067\u3059\u3002Frame\u306e\u5834\u5408\u306f\u305d\u3093\u306a\u3053\u3068\u306a\u304b\u3063\u305f\u306e\u306b\u3001\u4e0d\u601d\u8b70\u3067\u3059\u306d\u3002\u4eca\u56de\u306f\u3001\u30c8\u30c3\u30d7\u30ec\u30d9\u30eb\u306e\u30a4\u30d9\u30f3\u30c8\u3067\u5145\u5206\u3067\u3059\u306e\u3067\u3001\u500b\u3005\u306e\u30a6\u30a3\u30b8\u30a7\u30c3\u30c8\u306e\u30d0\u30a4\u30f3\u30c9\u306f\u524a\u9664\u3057\u307e\u3057\u3087\u3046\u3002<\/p>\n\n\n\n<p>\u3000\u305d\u3057\u3066\u3001class\u306e\u3059\u3050\u4e0b\u306b\u5b9a\u7fa9\u3057\u3066\u3042\u308b\u5909\u6570\u3092\u4f55\u3068\u304b\u6574\u7406\u3057\u305f\u3044\u3067\u3059\u3002\u540d\u524d\u7a7a\u9593\u304c\u30e2\u30b8\u30e5\u30fc\u30eb\u5185\u306b\u3042\u308b\u306e\u3067\u3001\u30af\u30e9\u30b9\u5b9a\u7fa9\u306e\u5916\u306b\u51fa\u3057\u3066\u3057\u307e\u3044\u307e\u3057\u3087\u3046\u3002\u305d\u3046\u3059\u308b\u3068\u3001\u300cself.\u300d\u3092\u66f8\u304b\u306a\u304f\u3066\u3088\u304f\u306a\u308a\u307e\u3059\u3002\u305d\u308c\u3067\u3082\u307e\u3060\u6a2a\u306b\u9577\u3044\u306e\u3068\u3001\u308f\u304b\u308a\u3084\u3059\u3055\u306e\u305f\u3081\u306b\u5024\u3092\u3044\u3063\u305f\u3093\u5909\u6570\u306b\u5165\u308c\u3066\u3001\u5f8c\u3067\u898b\u305f\u3068\u304d\u306b\u5c11\u3057\u78ba\u8a8d\u3057\u3084\u3059\u304f\u3057\u307e\u3057\u3087\u3046\u3002\u3042\u3068\u3001\u4e00\u56de\u3082\u53c2\u7167\u3055\u308c\u3066\u3044\u306a\u3044\u3001<code>self.line1<\/code>\u3078\u306e\u4ee3\u5165\u306f\u3084\u3081\u3066\u3057\u307e\u3044\u307e\u3057\u3087\u3046\u3002<\/p>\n\n\n\n<p>\u3000\u3044\u308d\u3044\u308d\u3068\u6539\u5584\u3057\u305f\u7d50\u679c\u304c\u4ee5\u4e0b\u306e\u30bd\u30fc\u30b9\u3067\u3059\u3002<\/p>\n\n\n\n<pre class=\"EnlighterJSRAW\" data-enlighter-language=\"python\" data-enlighter-theme=\"\" data-enlighter-highlight=\"\" data-enlighter-linenumbers=\"\" data-enlighter-lineoffset=\"\" data-enlighter-title=\"\" data-enlighter-group=\"\">from tkinter import Tk, Button, Canvas, Label, messagebox\nfrom random import sample\nfrom time import time\n\nMARGIN = 10\nDISTANCE = 50\nWIDTH = 5\nHEIGHT = 5\nFSIZE = 25\n\nclass SchulteTable(Tk):\n    def __init__(self):\n        super().__init__()\n        self.title(\"Schulte Table\")\n        self.text = list()\n        self.create_widgets()\n        self.bind(\"&lt;Button-1>\", self.redraw_text)\n\n    def create_widgets(self):\n        self.info = Label(self, text=\"Tap anywhere to start\", font=(\"\",14))\n        self.info.pack(side=\"top\")\n        width = MARGIN*2+WIDTH*DISTANCE\n        height = MARGIN*2+HEIGHT*DISTANCE\n        self.canvas = Canvas(self,width=width, height=height)\n        self.canvas.pack(side=\"top\")\n        for i in range(WIDTH+1): #\u7e26\u7dda\n            x0, y0 = MARGIN + i * DISTANCE, MARGIN\n            x1, y1 = MARGIN + i * DISTANCE, MARGIN + DISTANCE * HEIGHT\n            self.canvas.create_line(x0,y0,x1,y1)\n        for i in range(HEIGHT+1): #\u6a2a\u7dda\n            x0, y0 = MARGIN, MARGIN + i * DISTANCE\n            x1, y1 = MARGIN + WIDTH * DISTANCE, MARGIN + i * DISTANCE\n            self.canvas.create_line(x0,y0,x1,y1)\n\n        self.quit = Button(self, text=\"QUIT\", fg=\"red\", command=self.destroy)\n        self.quit.pack(side=\"bottom\")\n\n    def redraw_text(self, event):\n        if not len(self.text):\n            self.info[\"text\"] = \"Tap anywhere to STOP\"\n            self.time = time()\n            self.after(100, self.time_update)\n        else:\n            for t in self.text:\n                self.canvas.delete(t)\n            self.text = list()\n            message = f\"\u304b\u304b\u3063\u305f\u6642\u9593\u306f\u3001{self.elapse_time:0.2f}\u79d2\u3067\u3059\u3002\"\n            messagebox.showinfo(\"\u7d50\u679c\",message)\n            self.info[\"text\"] = \"Tap anywhere to start\"\n            return\n        counter = 0\n        answers = sample(range(1,WIDTH*HEIGHT+1),WIDTH*HEIGHT)\n        for x in range(WIDTH):\n            for y in range(HEIGHT): # \u6570\u5b57\u306e\u30c6\u30ad\u30b9\u30c8\u63cf\u753b\n                x0 = MARGIN + x * DISTANCE + DISTANCE \/ 2\n                y0 = MARGIN + y * DISTANCE + DISTANCE \/ 2\n                ans = str(answers[counter])\n                text = self.canvas.create_text(x0,y0,text=ans,font=(\"\",FSIZE))\n                self.text.append(text)\n                counter+=1\n\n    def time_update(self):\n        if not len(self.text):\n            return\n        self.elapse_time = time() - self.time\n        self.info[\"text\"] = f\"Tap anywhere to STOP:{self.elapse_time:0.2f}\"\n        if len(self.text):\n            self.after(10, self.time_update)\n\nif __name__ == '__main__':\n    shulteTable = SchulteTable()\n    shulteTable.mainloop()\n<\/pre>\n\n\n\n<p>\u3000\u3069\u3046\u3067\u3057\u3087\u3046\u3001\u5c11\u3057\u306f\u5206\u304b\u308a\u3084\u3059\u304f\u306a\u3063\u305f\u3067\u3057\u3087\u3046\u3002\u3082\u3057\u304b\u3057\u3066\u3001\u5358\u306a\u308b\u81ea\u5df1\u6e80\u8db3\u3067\u3057\u3087\u3046\u304b\u3002\u3002\u3002<\/p>\n","protected":false},"excerpt":{"rendered":"<p>\u3000\u4eca\u65e5\u3082\u898b\u306b\u6765\u3066\u304f\u3060\u3055\u3063\u3066\u3042\u308a\u304c\u3068\u3046\u3054\u3056\u3044\u307e\u3059\u3002\u307e\u3060\u3001\u671d\u306f\u808c\u5bd2\u3044\u3067\u3059\u306d\u3047\u3002 \u3000\u3055\u3066\u3001\u4e88\u8a00\u901a\u308a\u3001\u5148\u65e5\u306e\u30b9\u30af\u30ea\u30d7\u30c8\u3092\u30ea\u30d5\u30a1\u30af\u30bf\u30ea\u30f3\u30b0\u3057\u305f\u3044\u3068\u601d\u3044\u307e\u3059\u3002\u30dd\u30a4\u30f3\u30c8\u306f\u3001\u307e\u305a\u3001Frame\u3092\u7d99\u627f\u3057\u3066\u3044\u308b\u3068\u3053\u308d\u3067\u3059\u306d\u3002\u6b21\u306f\u3001\u30b3\u30f3\u30b9\u30bf\u30f3\u30c8 &hellip; <\/p>\n<p class=\"link-more\"><a href=\"https:\/\/www.ishikawasekkei.com\/index.php\/2020\/03\/26\/tkinter-make-shulte-table-2\/\" class=\"more-link\"><span class=\"screen-reader-text\">&#8220;Tkinter\u3067\u30b7\u30e5\u30eb\u30c6\u30fb\u30c6\u30fc\u30d6\u30eb\u3092\u3064\u304f\u308b \u30ea\u30d5\u30a1\u30af\u30bf\u30ea\u30f3\u30b0\u7de8&#8221; \u306e<\/span>\u7d9a\u304d\u3092\u8aad\u3080<\/a><\/p>\n","protected":false},"author":1,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[8,13,2],"tags":[],"class_list":["post-952","post","type-post","status-publish","format-standard","hentry","category-program","category-tkinter","category-blog"],"aioseo_notices":[],"_links":{"self":[{"href":"https:\/\/www.ishikawasekkei.com\/index.php\/wp-json\/wp\/v2\/posts\/952","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/www.ishikawasekkei.com\/index.php\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/www.ishikawasekkei.com\/index.php\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/www.ishikawasekkei.com\/index.php\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/www.ishikawasekkei.com\/index.php\/wp-json\/wp\/v2\/comments?post=952"}],"version-history":[{"count":6,"href":"https:\/\/www.ishikawasekkei.com\/index.php\/wp-json\/wp\/v2\/posts\/952\/revisions"}],"predecessor-version":[{"id":971,"href":"https:\/\/www.ishikawasekkei.com\/index.php\/wp-json\/wp\/v2\/posts\/952\/revisions\/971"}],"wp:attachment":[{"href":"https:\/\/www.ishikawasekkei.com\/index.php\/wp-json\/wp\/v2\/media?parent=952"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.ishikawasekkei.com\/index.php\/wp-json\/wp\/v2\/categories?post=952"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.ishikawasekkei.com\/index.php\/wp-json\/wp\/v2\/tags?post=952"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}