1. 程式人生 > >3.3 類的屬性總結  3.4 類的方法總結  3.5 rc指令碼(類的定義與指令碼的結構)

3.3 類的屬性總結  3.4 類的方法總結  3.5 rc指令碼(類的定義與指令碼的結構)

3.3 類的屬性總結

類屬性(公有屬性)

私有屬性

物件的公有屬性

物件的私有屬性

內建屬性

函式的區域性變數

全域性變數

class MyClass(object):
	var1 = "類的公有屬性"
	__var2 = "類的私有屬性"

	def func1(self):
		self.var3 = "物件的公有屬性"
		self.__var4 = "物件的私有屬性"
		var5 = "函式的區域性變數"

mc = MyClass()
print mc.var1
print mc._MyClass__var2
mc.func1()
print mc.var3

3.4 類的方法總結

class MyClass(object):
	name = 'test'
	def __init__(self):
		self.func1()
		self.__func2()
		self.classFun()
		self.staticFun()
		print "-"*20
	def func1(self):
		print self.name
		print "我是公有方法"
		self.__func2()
	def __func2(self):
		print self.name
		print "我是私有方法"

	@classmethod
	def classFun(self):
		print self.name
		print "我是類方法"

	[@staticmethod](https://my.oschina.net/staticmethod)
	def staticFun():
		print MyClass.name
		print "我是靜態方法"

mc = MyClass()
mc.func1()
MyClass.classFun()  #加上@classmethod就可以通過類呼叫
MyClass.staticFun()  #加上[@staticmethod](https://my.oschina.net/staticmethod) ,注意沒有self引數,需要通過類來呼叫

test
我是公有方法
test
我是私有方法
test
我是私有方法
test
我是類方法
test
我是靜態方法
--------------------
test
我是公有方法
test
我是私有方法
test
我是類方法
test
我是靜態方法

3.5 rc指令碼(類的定義與指令碼的結構)

import sys
class Process(object):
	'''memcached rc script'''
	def __init__(self,name,program,args,workdir):
		self.name = name
		self.program = program
		self.args = args
		self.workdir = workdir   #類在例項化的時候要傳的幾個引數

	def start(self):
		pass
	def stop(self):
		pass
	def restrat(self):
		self.stop()
		self.start()
	def status(self):
		pass
	def help(self):
		pass
def main():
	name = "memcached"
	prog = "/usr/bin/memcached"
	args = "-u nobody -p 11211 -c 1024 -m 64"
	wd = "/var/tmp/memcached"
	pm = Process(name = name,program = prog,args = args,workdir = wd)

	try:
		cmd = sys.argv[1]
	except IndexError,e:
		print "Options error"
		sys.exit()
	if cmd == 'start':
		pm.start()
	elif cmd == 'stop':
		pm.stop()
	elif cmd == 'restart':
		pass
	else:
		pm.help()