python的类对象

       最近仿照memcache的IO机制用libevent库写了一个多线程的socket程序,需要一个测试程序,于是准备用python写一个不过好久没写python了该觉有点手生啊微笑

         首先准备一些类的基础知识:

           1,类的的继承:python类个人感觉功能比较单一,不过和C++差不多,只不过形式不一样。

           2,类的私有成员:python类没有例如public,private,protected这些成员修饰符,转而替代的是下滑线其中双下划线表示私有(这让我们写C++好头疼啊)。

           3,静态成员:python中没有static来表示静态成员。用@staticmethod用来修饰的函数为静态函数,其余的为非静态。静态方法无法访问类的成员变量(不用self引用而用类名引用)和对象的变量(用self引用)

<span style="font-size:14px;">class A:
   
    a = []
    def func(self):
       A.a.append("c")
  
if __name__=="__main__":

    b = A()
    b.func()
    c = A()
    c.func()
    print c.a

</span>


 

输出为cc
   

<span style="font-size:14px;">class A:
   def __init__(self):
       self.a = []
       self.a.append('c')
  
  
if __name__=="__main__":

    b = A()
  
    c = A()
   
    print c.a</span>


输出为c

下面给出一些实例:

<span style="font-size:14px;">import socket
import sys
import os
#############################population is static belongs to class name is common var################################
class test:
    name = "zh"
    population = 0

    def fun(self):
        print 'nihao %s' %(self.name)
class test1:
    population = 0;
    def __init__(self):
        test1.population = test1.population + 1
    @staticmethod
    def statifunction(self):
        print "static function"
    a = test()
    def _fun(self):
        self.a.fun()
#####################################################################
class schoolmember:
    def __init__(self,name,age,department):
        self.name = name;
        self.age = age;
        self.department = department;
    def tell(self):
        print 'name is %s, age is %s department is %s' %(self.name,self.age,self.department),
class teacher(schoolmember):

    def __init__(self,name,age,department,salary):
        schoolmember.__init__(self, name, age, department)
        self.salary = salary
    def tell(self):
        schoolmember.tell(self),
        print 'salary is %d' %(self.salary)
class student(schoolmember):
    def __init__(self,name,age,depardement,sore):
        schoolmember.__init__(self, name, age, department)
        self.score = score
    def tell(self):
        schoolmember.tell(self),
        print 'score is %d' %(self.score)
#################################################################################
class Socketclient:
    def socketinit(self):
        socketcon = socket()
        try:
            socketcon.connect(("localhost",8000))
        except:
            print "socket connect error"
        else:
            print socketcon.recv()
            socketcon.close()
            
class socketserver:
    def __init__(self):
        self.socketlsiten = 0;
        self.acceptfd = 0;
        self.addr=()
    def socketinit(self):
        try:
            self.socketlsiten = socket.socket()
          
        except:
            print "socket error"
            sys.exit(0)
        try:
            host = socket.gethostname()
            self.socketlsiten.bind((host,1234))
        except:
            print "socket bind incorrect"
            sys.exit(0)
        try:
            self.socketlsiten.listen(3)
        except:
            print "scoket lsiten error"
            sys.exit(0)
        else:
            print "socket create correct"
        return 
             
    def socket_accept(self):
        while True:
            try:
                self.acceptfd,self.addr=self.socketlsiten.accept()
            except:
                print "accept error"
                break
            else:
                self.acceptfd.send("nihao")
                self.acceptfd.close()
                break
               
                
if __name__=="__main__":
    '''teacher1 = teacher("zh",3,"shuxue",10)
    teacher1.tell()'''
    #host = socket.gethostname()
  # print gethostbyname(host)
    
    #print gethostbyname_ex(host)
   # server = socketserver()
   # server.socketinit()
   # server.socket_accept()
   # print "over"
   
  
  
  

    
    
    
</span>


 


 


 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值