• python_静态对象_socket


    面向对象的编程进阶
     
    静态方法
     
    加上staticmethod后这个函数虽然还在类里,但已经和类没有关系了,也不需要再调用self
    直接d = Dog("chenronghua")
    d.eat(d)
     
    举例:
    class Dog(object):
        def __init__(self, name, ):
            self.name = name
     
        @staticmethod#此时会报错缺少self
        def eat(self):
            print ("%s is eating"%(self.name))
     
    d = Dog("陈荣华")
    d.eat()
     
    TypeError: eat() missing 1 required positional argument: 'self'
     
    类方法
     
    类方法
    只能访问类比变量
     
    属性方法
    把一个方法变成一个静态属性
    class Dog(object):
        def __init__(self, name, ):
            self.name = name
     
        @property #attribute
        def eat(self):
            print ("%s is eating"%self.name)
     
    d = Dog("chenronghua")
    d.eat
     
    类的特殊成员方法
     
    __doc__
    #直接打印这个类的描述
    class Foo(object):
         """这个类是描述狗这个对象"""
    print (Foo.__doc__) 
     
    __module__和__class__
    __module__表示当前操作的对象在那个模块
    __class__ 表示当前的对象的类是什么
     
    __call__对象后面加括号,触发执行
     
    class Dog(object):
         def __cal__(self, *args, *kwargs)
    d = Dog("chenronghua")
    d(1,2,3,name="3333")
     
    __dict__
     
    打印类里的属性
    class Dog(object):
         def __cal__(self, *args, *kwargs)
     
    d = Dog("chenronghua")
    d(1,2,3,name="3333")
     
    #打印类里的属性
    print Dog.__dict__
    #打印d里的方法
    print d.__dict__
     
    反射
    hasattr(obj,name_str)   
    getattr(obj_name_str)
     
    class Dog(object):
     
        def __init__(self, name):
            self.name = name
     
        def eat(self):
            print ("%s is eating..."%self.name)
     
    d = Dog("niu")
    choice = input(">>:").strip()
    if hasattr(d,choice):            #判断对象里是否有对应的字符串的方法映射
        func = getattr(d,choice)     #根据字符串里的对象去获取对应的方法内存地址
        func("chenronghua")
     
     
    def bulk(name):
         print ("%s da jiao "%name)
     
     
     
    class Dog(object):
        def __init__(self, name):
            self.name = name
     
        def eat(self,food):
            print ("%s eat %s"%(self.name,food))
     
    d = Dog("牛汉阳")
    # d.eat("chenronghua")
     
    def bulk(self):
        print ("yell %s"%self.name)
     
    choice = input(" >> : " )
     
    if hasattr(d,choice):
        print (hasattr(d,choice))
        getattr(d,choice)("草")
    else:
        setattr(d,choice,bulk)
        getattr(d,choice)(d)
        #func = getattrt(d,choice)
        #func(d)
     
     
    SOCKET
    conn,addr = server.accept()
    conn是个客户端连接到服务器为其生成的一个实例
    addr 是个IP地址和端口
     
  • 相关阅读:
    一片非常有趣的文章 三分钟读懂TT猫分布式、微服务和集群之路
    mysql+mycat搭建稳定高可用集群,负载均衡,主备复制,读写分离
    mycat读写分离+垂直切分+水平切分+er分片+全局表 测试
    LVS Nginx HAProxy 优缺点
    nginx map配置根据请求头不同分配流量到不同后端服务
    Javamail发送邮件
    java发送html模板的高逼格邮件
    学习openresty时,nginx的一个坑
    mysql数据导出golang实现
    mysql支持原生json使用说明
  • 原文地址:https://www.cnblogs.com/zoee/p/5858734.html
Copyright © 2020-2023  润新知