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地址和端口
 
                    
                 
                
            
         
 浙公网安备 33010602011771号
浙公网安备 33010602011771号