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 changeKeyboard(self, keyboard):#與其認為是overwrite不如想作是一個"新的"屬於Server物件的新方法。
self.keyboard = keyboard + " 1"
print self.keyboard

def getKeyboard(self):#與其認為是overwrite不如想作是一個"新的"屬於Server物件的新方法。
print "keyboard is " + self.keyboard +" 2"


c1 = Computer("red", "blue")
s1 = Server("yes", "no", "ddd", "kkk")

print "### Computer ###"
c1.getKeyboard()
c1.getMouse()
print "### server ###"
s1.getKeyboard()
s1.getMouse()#S1用到從Computer繼承的getMouse()

print "### change keyboard ###"
c1.changeKeyboard("wire")
s1.changeKeyboard("no keyboard")

print "### Computer ###"
c1.getKeyboard()
c1.getMouse()
print "### server ###"
s1.getKeyboard()
s1.getMouse()#S1用到從Computer繼承的getMouse()

結果
### Computer ###
keyboard is red
mouse is blue
### server ###
keyboard is yes 2
mouse is no
### change keyboard ###
red-wire
no keyboard 1
### Computer ###
keyboard is red-wire
mouse is blue
### server ###
keyboard is no keyboard 1 2
mouse is no

留言

這個網誌中的熱門文章

python 找圖自動點擊

Python pyserial 抓取系統內的 COM PORT

VBA EXCEL 工作表變化 馬上執行 的作法 Worksheet_Change