首页 > 代码库 > python_静态对象_socket

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地址和端口
 

python_静态对象_socket