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()