zoukankan      html  css  js  c++  java
  • 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地址和端口
     
  • 相关阅读:
    自动装配有哪些局限性?
    zk 节点宕机如何处理?
    Zookeeper 的 java 客户端都有哪些?
    BeanFactory – BeanFactory 实现举例?
    Spring 配置文件?
    什么是 Spring IOC 容器?
    Spring 框架中的单例 bean 是线程安全的吗?
    ApplicationContext 通常的实现是什么?
    什么是通知Advice?
    spring 支持哪些 ORM 框架?
  • 原文地址:https://www.cnblogs.com/zoee/p/5858734.html
Copyright © 2011-2022 走看看