2018-12-06

类的属性-总结

  • 类属性,也是公有属性
  • 类的私有属性
  • 对象的公有属性
  • 对象的私有属性
  • 内置属性
  • 函数的局部变量
  • 全局变量
#!/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()
©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

相关阅读更多精彩内容

  • 7.4.1 静态私有变量 通过在私有作用域中定义私有变量或函数,同样也可以创建特权方法,其基本模式如下: 这个模式...
    kathyever阅读 1,409评论 0 0
  • 1.模版介绍 这里将会介绍在python的web开发中广泛使用的模版语言jinja2.模版在web开发中使用最为广...
    11的雾阅读 5,216评论 0 3
  • 一、Python简介和环境搭建以及pip的安装 4课时实验课主要内容 【Python简介】: Python 是一个...
    _小老虎_阅读 11,339评论 0 10
  • 1. 共同点 都有getTime方法返回毫秒数,可以直接构建 2. 不同点: 1、java.sql.Date是针对...
    Ernest_Chou阅读 1,342评论 0 0
  • 书籍:《狼图腾》 背景: 初中时候在一家盗版书店看到过《狼图腾》的封面,当时就只有一个模糊的影像,后来高中在书店里...
    姓钱的一家人阅读 2,985评论 0 0

友情链接更多精彩内容