美文网首页
2018-12-06

2018-12-06

作者: Karl_2c80 | 来源:发表于2018-12-06 23:00 被阅读0次

类的属性-总结

  • 类属性,也是公有属性
  • 类的私有属性
  • 对象的公有属性
  • 对象的私有属性
  • 内置属性
  • 函数的局部变量
  • 全局变量
#!/usr/bin/python
#coding:utf8


var6 = '全局变量 var6'

class MyClass(object):
    var1 = '类属性 var1'
    __var2 = '类的私有属性 __var2'

    def func1(self):
        self.var3 = '对象的共有属性 var3'
        self.__var4 = '对象的私有属性 __var4'
        var5 = '函数的局部变量 var5'


mc = MyClass()
mc.func1()
print mc.var3
mc2 = MyClass()
print mc2.var3
[root@KARL ~]# python u4.py
对象的共有属性 var3
Traceback (most recent call last):
  File "u4.py", line 21, in <module>
    print mc2.var3
AttributeError: 'MyClass' object has no attribute 'var3'

类的方法-总结

  • 公有方法
  • 私有方法
  • 类方法
  • 静态方法
  • 内置方法
#!/usr/bin/python
#coding:utf8

class MyClass(object):
    name = 'Test'

    def __init__(self):
        self.func1()
        self.__func2()
        self.classFunc()
        # staticFunc()  # 静态方法不带self,且不能在构造方法中直接调用

    def func1(self):
        print self.name,
        print "我是公有方法"

    def __func2(self):
        print self.name,
        print "我是私有方法"

    @classmethod
    def classFunc(self):
        print self.name,
        print "我是类方法"

    @staticmethod
    def staticFunc():
        #print self.name,
        print "我是静态方法"

mc = MyClass()
print '#'*50
mc.func1()
mc._MyClass__func2()
mc.classFunc()
mc.staticFunc()         # 可通过对象来调用静态方法
[root@KARL ~]# python u5.py
Test 我是公有方法
Test 我是私有方法
Test 我是类方法
##################################################
Test 我是公有方法
Test 我是私有方法
Test 我是类方法
我是静态方法

rc脚本(类的定义与脚本的结构)

  • 用python实现对memcached服务的操作
#!/usr/bin/python
#coding:utf8

import sys

class Process(object):
    '''memcached rc script'''
    def __init__(self, name, program, args, workdir):
        self.name = mame
        self.program = program
        self.args = args
        self.workdir = workdir

    def _init(self):    # 不是私有方法


    def start(self):

    def stop(self):

    def restart(self):
        self.stop()
        self.start()

    def status(self):

    def help(self):

def main():
    name = 'memcached'
    program = '/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 "Option error"
        sys.exit()
    if cmd == 'start':
        pm.start()
    elif cmd == 'stop':
        pm.stop()
    elif cmd == 'restart':
        pm.restart()
    elif cmd == 'status':
        pm.status()
    else:
        pm.help()


if __name__ == '__main__':
    main()

相关文章

网友评论

      本文标题:2018-12-06

      本文链接:https://www.haomeiwen.com/subject/fhgacqtx.html