發表文章

Python global variable

def g():     var =1     print var var = 10 print var g() print var  答案為 >>>  10 1 10 >>>  這個很容易理解,本來g()裡面的參數就不會跟外面的混為一談。 def g():     print var var = 10 print var g() print var  答案為 >>>  10 10 10 >>>  超有趣,g()中的var,居然直接找到外面的var。 def g():     print var global var var = 10 print var g() print var  答案為 >>>  10 10 10 >>>  多宣告global,跟上一種寫法一樣。好像內定就以為是global def g():     var = 1     print var global var var = 10 print var g() print var  答案為 >>>  10 1 10 >>>  g()中多了var = 1怎麼又認為不是外部的var了呢?外部var明明有宣告為 global了。這樣就可理解,上兩種寫法,因為沒有在 g()中給定 var 一個值。所以python 認為g()裡面的var與外面的是一樣的。所以給一個值,python會做出新變數。這樣我們可以推論,如果有沒新宣告為global不能給值。 >>> global v = 1 SyntaxError: invalid syntax 沒錯,改成 global v #先宣告是global v = 1 嗯… def g():     global var     var =1     print var var = 10

python 繼承

import ttk import re import os, sys class Computer(): keyboard = "bluetooth" mouse = "bluetooth" def __init__(self, keyboard = "wire", mouse = "wire"): self.keyboard = keyboard self.mouse = mouse def getKeyboard(self): print "keyboard is " + self.keyboard def getMouse(self): print "mouse is " + self.mouse def changeKeyboard(self, keyboard): self.keyboard = self.keyboard + "-" + keyboard print self.keyboard class Server(Computer): interface = "scsi" harddisk = "SD" def __init__(self, keyboard="wire", mouse = "wire", interface = "ide", harddisk = "drive"): Computer.__init__(self, keyboard, mouse) #這裡在python 3要改成 super().__init__(keyboard, mouse) self.interface = interface self.harddisk = harddisk def chang

tkinter check button

先宣個一個參數的物件 varB = tk.BooleanVar() set  初始值 varB.set(True) 給 check button 設定 var 參數 ckBtn = tk.Checkbutton(root, text="I am a check button",var=varB) ckBtn.grid(row=0, column =  0) 想要得到參數 ckBtn.get() 如 if  ckBtn.get() is True:     print "I am true" 也可以把參數換成String varB = tk. StringVar() 給 check button 設定 var 參數 ckBtn = tk.Checkbutton(root, text="i am a check button", var=varB, onvalue="yes", offvalue="no") 想要得到參數  ckBtn.get() 如 if  ckBtn.get() == "yes":         print "I am yes"

python 變數

幾個小測試 class kk:     i=5     def dd(self):         i=3 >>kk.i 5 >>a=kk() >>a.i 5 >>a.dd() >>a.i 5 >>a.i=10 >>a.i 10 >> kk.i 5 ###################################################### class kk:     i=5     def dd(self):         self.__class__.i=3 >>kk.i 5 >>a=kk() >>a.i 5 >>a.dd() >>a.i 3 >>kk.i 3 ##################################################### class kk:     i=5     def dd(self):         self.i=3 >>> kk.i 5 >>> a=kk() >>> a.i 5 >>> a.dd() >>> a.i 3 >>> kk.i 5 >>> 這個例子可以理解到 self 有挷定參數至當下這個物件的功能 ##################################################### class kk: self.i=5 def dd(self): i=4 Traceback (most recent call last):   File "<pyshell#46>", line 1, in <module>     class kk:   File "<pyshell#46>", line 2, in kk     self.i=5 NameErro

python 動態 import

在python有時候我們會用到需要動態的import模組 方法如下 sys1 = __import__('sys') 其實上面這行就等於 import sys as sys1 既然可以這樣 import,我們可以多個模組一起 ms = [ 're', 'os', 'sys'] ims =  map(__import__, ms) 我們來看一下 python 的版本 ims[2].version 如此這般。

得到 關於手機 的訊息

圖片
import android.os.Build ;   Build中可以取得手機中的一些資訊如下 主機版名稱 = Build . BOARD ; 硬體名稱 = Build.HARDWARE;   品牌名稱 = Build . BRAND ;   CPU名稱 = Build . CPU_ABI ;   設備名稱 = Build . DEVICE ;   版本號碼 = Build . DISPLAY ;   設備識別碼 = Build . FINGERPRINT ;   HOST = Build . HOST ;   版本號碼 = Build . ID ;   製造商 = Build . MANUFACTURER ;   模組號碼 = Build . MODEL ;   產品名稱 = Build . PRODUCT ;   設備描述 = Build . TAGS ;   設備類別 = Build . TYPE ;   USER = Build . USER ; 結果

Python Tkinter 快速上手

圖片
想像一個介面如下 python 2.7 的範例如下 注意: 同一個視窗中如果使用grid()就不可使用 pack(),兩者選其一用即可D import Tkinter as tk import tkMessageBox import ttk class TKDemo(): def __init__(self, master=None): self.rowCount=0#用這個row count,以免以後修改LAYOUT, 中間要插入新的列,新列之後的row都要改 self.root = master self.createWidgets() def createWidgets(self): label1=tk.Label(self.root, text="First") label2=tk.Label(self.root, text="Second" ) label1row = self.rowCount label1.grid(row=label1row, sticky=tk.W) self.rowCount += 1 label2row = self.rowCount label2.grid(row=label2row, sticky=tk.W) self.rowCount += 1 e1 = tk.Entry(self.root) e2 = tk.Entry(self.root) photo=tk.PhotoImage(file='ibtn.gif')#png, jpeg, 都不能用。 b=tk.Button(self.root, image=photo, text="ppp", relief=tk.RIDGE) b.grid(row=label1row, column=2) #b.config(image=photo) e1.grid(row=label1row, column=1, sticky="we")#靠東靠西延伸 e2.grid(row