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地址和端口
     
  • 相关阅读:
    网络受限下,使用Nexus要解决的两个问题
    Nexus远程Maven仓库索引下载教程
    maven--私服的搭建(Nexus的使用)
    maven命令/依赖/聚合
    mybatis常用jdbcType数据类型
    Lombok 安装、入门
    jquery append 动态添加的元素事件on 不起作用的解决方案
    Maximum Sum on Even Positions
    哈密顿
    计算几何基础
  • 原文地址:https://www.cnblogs.com/zoee/p/5858734.html
Copyright © 2011-2022 走看看