美文网首页
May 7th_day16_operator&memory&so

May 7th_day16_operator&memory&so

作者: 3ae1c50960af | 来源:发表于2019-05-09 09:57 被阅读0次

    python中所有的数据类型都是,数据都是对象。
    所有的运算符对应的操作,本质都是在调用数据类型对应的魔法方法。(每个运算符都对应一个固定的魔法方法)

    1.一个变量直接给另外一个变量赋值:直接将地址赋值,赋完后两个变量指向同一块内存区域,并且相互影响

    2.浅拷贝和深拷贝

    浅拷贝原理:将被拷贝的对象复制一份,产生一个新的数据,然后将新的数据的地址返回

    2.1.浅拷贝

    列表或字典的copy方法是浅拷贝、切片也是浅拷贝
    copy.copy(对象) - 复制指定的对象,产生一个新的对象

    2.2.深拷贝

    copy.deepcopy(对象) - 复制指定的对象,产生一个新的对象。如果这个对象中有其他的对象,子对象也会被复制

    运算符重载

    1.运算符重载

    通过在类中实现运算符对应的魔法方法,来让类的对象支持相关运算符的操作
    每个运算符对应固定的魔法方法
    x + y :前面的对象决定使用运算符的类

    补充:重载
    函数的重载 - 函数名相同但是参数不同的函数可以有多个,但是python不支持函数的重载

    """python不支持函数的重载"""
    def func1():
        print('函数1')
    
    def func1(x)
        print('函数2', x)
    
    func1()
    func1('abc')
    

    memory

    1.数据的存储(内存开辟)

    python的变量都存储在栈区间,对象都在堆区间。
    声明变量或者给变量赋值,是现在内存(堆)中开辟存储数据,然后将地址保存在变量中。
    但是数字和字符串特殊,如果是用数字或者字符串给变量赋值,不会直接开辟空间保存数据,而是现在内存检测这个数据之前是否已经存储过,如果已经存储直接用上次保存的数据,没有存储才会开辟新的空间保存数据。

    2.内存的释放

    2.1.引用计数

    python每个对象都有一个属性叫引用计数,用来保存当前对象的引用的个数

    2.2.

    python中的垃圾回收机制来判断一个对象是否销毁,就看这个对象的引用计数是否为零,如果为零就会被销毁

    socket(套接字)

    进行通信的两端就是套接字,有两种类型,分别是服务器套接字、客户端套接字

    1.创建套接字对象(买个电话机)

    family - 设置ip协议类型,AF_INET(ipv4),AF_INET6(ipv6)
    type - 设置传输协议类型,SOCK_STREAM(TCP),SOCK_DGRAM(UDP)

    server = socket.socket(family=socket.AF_INET, type=socket.SOCK_STREAM)
    

    2.绑定ip地址和端口(插电话线绑定电话号码)

    bind((ip地址,端口))
    ip地址 - 字符串,服务器对应的ip地址
    端口号 - int,端口号用来区分一台电脑上的不同的服务。0-65535,0-1024是著名端口,一般不选。
    同一时间一个端口只能绑定一个服务

    server.bind(('10.7.185.70', 8888))
    

    3.开始监听请求(等别人打电话)

    server.listen(512)
    

    4.让服务器一直运行

    while True:
        print('开始接收请求。。。')
    

    5.接收请求(接电话)

        # 接收请求(接电话)
        # 代码运行到这个位置,会停下来,等到有客户端给服务器发送请求为止
        connect, address = server.accept()
    

    6.接收消息(听别人说)

    """
        recv(bufsize)   -   bufsize,设置一次性能够接收的数据大小的最大值,单位是字节
                            返回的数据类型是字节
        """
        re_data = connect.recv(1024)
        print(str(re_data))
    

    7.发送数据(说给别人听)

    connect.send('你好!'.encode())
    

    8.关闭连接(挂电话)

    相关文章

      网友评论

          本文标题:May 7th_day16_operator&memory&so

          本文链接:https://www.haomeiwen.com/subject/napioqtx.html