美文网首页
一切皆对象

一切皆对象

作者: 漓江塔塔主 | 来源:发表于2019-04-02 10:55 被阅读0次

    这两天看完了一些例子
    感觉对这句话有了更深刻的理解

    在python中,一切皆对象。数字、字符串、元组、列表、字典、函数、方法、类、模块等等都是对象,包括你的代码。
    Python 中的一切都可以赋值给变量或者作为参数传递给函数。
    Python 的所有对象都有三个特性:

    • 身份:每个对象都有一个唯一的身份标识自己,任何对象的身份都可以使用内建函数 id() 来得到,可以简单的认为这个值是该对象的内存地址。
    >>> a = 1
    >>> id(a)
    >>> 26188904                        # 身份由这样一串类似的数字表示
    
    • 类型:对象的类型决定了对象可以保存什么类型的值,有哪些属性和方法,可以进行哪些操作,遵循怎样的规则。可以使用内建函数 type() 来查看对象的类型。
    >>> type(a)
    <type 'int'>
    >>> type(type)
    <type 'type'>                         #万物皆对象,type 也是一种特殊的对象 type
    
    • 值:对象所表示的数据
    >>> a
    1
    

    "身份"、"类型"和"值"在所有对象创建时被赋值。如果对象支持更新操作,则它的值是可变的,否则为只读(数字、字符串、元组等均不可变)。只要对象还存在,这三个特性就一直存在。
    对象的属性:大部分 Python 对象有属性、值或方法,使用句点(.)标记法来访问属性。最常见的属性是函数和方法,一些 Python 对象也有数据属性,如:类、模块、文件等
    所以在学习多线程多进程的时候,我们要想实现多线程的功能,只要在导入模块之后,直接创建一个相关的对象的就可以了。所有实现该功能的方法,都已经被封装好了。
    比如

    #启动多进程的方法
    from multiprocessing import Process
    import os
    
    #子进程要执行的代码
    def run_proc(name):
        print("run child process %s(%s)"%(name,os.getpid()))
    
    if __name__ == '__main__':
        print("parent process %s"%(os.getpid()))
        p = Process(target=run_proc,args=('test',))
        print('child process will start')
        #启动多进程
        p.start()
        #多进程间的同步
        p.join()
        print("child process is end")
    

    其实建立多进程主要就是从

     p = Process(target=run_proc,args=('test',))
    

    开始的。就是从我们导入好的process模块,创建了一个新的对象,然后就可以通过.调用所有属于它的方法。

    相关文章

      网友评论

          本文标题:一切皆对象

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