精华内容
下载资源
问答
  • 对象感的作用有哪些
    千次阅读
    2021-04-27 01:34:53

    python类对象和实例对象有什么区别吗

    发布时间:2020-07-20 14:10:37

    来源:亿速云

    阅读:119

    作者:清晨

    这篇文章主要介绍python类对象和实例对象有什么区别吗,文中介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们一定要看完!

    面向对象最重要的概念就是类(Class)和实例(Instance),必须牢记类是抽象的模板,比如Student类,而实例是根据类创建出来的一

    个个具体的“对象”,每个对象都拥有相同的方法,但各自的数据可能不同。

    推荐:Python教程

    仍以Student类为例,在Python中,定义类是通过class关键字:class Student(object):

    pass

    class后面紧接着是类名,即Student,类名通常是大写开头的单词,紧接着是(object),表示该类是从哪个类继承下来的,继承的概念我

    们后面再讲,通常,如果没有合适的继承类,就使用object类,这是所有类最终都会继承的类。

    定义好了Student类,就可以根据Student类创建出Student的实例,创建实例是通过类名+()实现的:>>> bart = Student()

    >>> bart

    >>> Student

    可以看到,变量bart指向的就是一个Student的实例,后面的0x10a67a590是内存地址,每个object的地址都不一样,而Student本身则

    是一个类。

    可以自由地给一个实例变量绑定属性,比如,给实例bart绑定一个name属性:>>> bart.name = 'Bart Simpson'

    >>> bart.name

    'Bart Simpson'

    由于类可以起到模板的作用,因此,可以在创建实例的时候,把一些我们认为必须绑定的属性强制填写进去。通过定义一个特殊的__init__方法,在创建实例的时候,就把name,score等属性绑上去:class Student(object):

    def __init__(self, name, score):

    self.name = name

    self.score = score

    注意到__init__方法的第一个参数永远是self,表示创建的实例本身,因此,在__init__方法内部,就可以把各种属性绑定到self,因为self

    就指向创建的实例本身。

    有了__init__方法,在创建实例的时候,就不能传入空的参数了,必须传入与__init__方法匹配的参数,但self不需要传,Python解释器自己会把实例变量传进去:>>> bart = Student('Bart Simpson', 59)

    >>> bart.name

    'Bart Simpson'

    >>> bart.score

    59

    以上是python类对象和实例对象有什么区别吗的所有内容,感谢各位的阅读!希望分享的内容对大家有帮助,更多相关知识,欢迎关注亿速云行业资讯频道!

    更多相关内容
  • 成功最有效的是复制,并非所有复制能够起效果,希望整理发布的专利制度的主要作用和保护对象能...该文档为专利制度的主要作用和保护对象,是一份很不错的参考资料,具有较高参考价值,兴趣的可以下载看看
  • Request对象主要用于获取来自客户端的数据,如用户填入表单的数据、保存在客户端的Cookie等,本文将围绕Request对象,讲解其的主要作用:读取窗体变量、读取查询字符串变量、取得Web服务器端的系统信息。取得客户端...
  • 突然看到一篇远在2010年的老文,作者以章节的形式向我们介绍了ECMA-262-3的部分内容,主要涉及到执行上下文、变量对象作用域、this等语言细节。内容短小而精悍,文风直白而严谨,读完酣畅淋漓、醍醐灌顶之,...
  • 相信也会新手朋友在看这本(我自己也是新手),对书中我个人认为比较难的内容的学习心得就想拿出来分享和交流,1是希望对自己所学知识能够起到巩固和加深理解的作用 2是希望对看到本文且兴趣的新手朋友一些帮助。...
  • js 有哪些全局对象?在浏览器JavaScript中,通常window是全局对象, 而Nodejs中的全局对象是global。在NodeJS里,是不可能在最外层定义一个变量,因为所有的用户代码都是当前模块的,只在当前模块里可用,但可以...

    目录

    一、Nodejs 概述

    1、对比JS和Nodejs

    2、相关网站

    3、运行方式

    4、Nodejs特点

    二、全局对象

    1、global

    2、console

    3、process

    4、Buffer


    一、Nodejs 概述
     

    1、对比JS和Nodejs

    JS运行在客户端浏览器,存在多个解释器,存在代码兼容性;Nodejs运行在服务器端,只有一种解释器(那就是谷歌的V8JS引擎),不存在兼容性

    两者都有相同的内置(ES)对象(即JS标准规范ECMAScript制定的内置对象),自定义对象,不同的宿主对象(宿主对象是运行在不同的环境下的,浏览器下运行就是浏览器的宿主对象,服务器端运行就是服务端的宿主对象)

    JS用于开发浏览器端的交互效果,Nodejs用于服务器端开发,数据库的操作,文件的操作,其它服务器的调用

    2、相关网站

    Nodejs.org    英文官网

    Nodejs.cn      中文镜像       

    其他推荐

    Node.js 教程 | 菜鸟教程

    Node.js 教程 | w3cschool

    3、运行方式

    脚本模式

          node   拖拽文件    回车 

    交互模式

          node    回车   进入到交互模式

                      两次ctrl+c    退出交互模式

    交互模式本身就是一个标准输出,不用再写console.log

    4、Nodejs特点

    支持数万个并发连接,常用于基于社交网络的大规模WEB应用

    本身属于是单线程运行,不适合那些CPU密集型的操作

    二、全局对象


    1、global

    在Nodejs下全局变量和全局函数都是可以使用global来访问到的。

    所有全局变量都是global对象的属性。在nodejs中能够直接访问到的对象通常都是global的属性,如console、 process等

    注意:window作为浏览器的最大宿主对象,而node 是直接用V8引擎直接解析的,所以没有window对象。------nodejs中global代替window

    global是全局命名空间对象,下面要说到的processconsolesetTimeout等都有放到global

    console.log(process === global.process) // true

    练习:在脚本文件global.js中,分别声明变量a和创建函数fn,查看这两项是否为全局的。

    var a = 1;
    function fn() {
      return 2;
    }
    
    //JS全局对象 window
    console.log(window.a); // ReferenceError: window is not defined
    console.log(window.fn()); // ReferenceError: window is not defined
    

    练习:在脚本文件window.js中,分别声明变量a和创建函数fn,在浏览器中查看这两项是否为全局的。新建window.html文件,引入window.js文件,使用浏览器打开window.html文件,在控制台查看,运行结果。

    js文件window.js:

    var a = 1;
    function fn() {
      return 2;
    }
    
    //JS全局对象 window
    console.log(window.a); // 1  说明a是全局变量
    console.log(window.fn()); // 2 说明fn是全局函数

     html文件window.html:

    <script src='window.js'></script>

    运行结果:

    Nodejs下,每个文件都是在一个模块作用域下,变量和函数都是局部的,防止污染全局     ------每个模块都有自己的作用域,每一个模块内声明的变量都是局部变量, 不会污染全局作用域。

    JS下,每个文件都是在全局作用域下,变量和函数都是全局的,存在全局污染。JS的全局对象叫 window

    番外:全局对象是什么?Node. js 有哪些全局对象?

    在浏览器 JavaScript 中,通常window 是全局对象, 而 Nodejs中的全局对象是 global

    NodeJS里,是不可能在最外层定义一个变量,因为所有的用户代码都是当前模块的,只在当前模块里可用,但可以通过exports对象的使用将其传递给模块外部

    所以,在NodeJS中,用var声明的变量并不属于全局的变量,只在当前模块生效

    像上述的global全局对象则在全局作用域中,任何全局变量、函数、对象都是该对象的一个属性值

    Node. js 将全局对象分成两类:真正的全局对象;模块级别的全局对象


    真正的全局对象:常见的全局对象有global、console、process、Buffer等等

    模块级别的全局对象:require、module、exports、module.exports、__dirname、__filename、Timer(clearInterval、setInterval、clearTimeout、setTimeout)等等

    番外:Javascript写在哪里?概括起来就是三种形式:

    1、内部:用script标签,写在Html网页的Body部分中;

    2、内部:用script标签,写在Html网页的head部分中;

    3、外部:写在后缀名为“.js”的文本文件里,并用script标签的src属性引入Html网页。

    2、console

    也是js的全局对象,js与nodejs都有console全局对象 

    log()    打印日志    ---最常用的输出(打印)内容的方式

    info()   打印消息

    warn()  打印警告

    error  打印错误

    time()   开始计时

    timeEnd()   结束计时

    开始计时和结束计时提供的参数要保持一致

    练习:分别使用while,do-while,for循环100000次,查看各自耗时

    ​
    /*
    console.log(1);  // 日志
    console.info(2); // 消息
    console.warn(3); // 警告
    console.error(4); // 错误
    */
    
    // for 循环
    console.time('ran'); // 开始计时
    for(let i=1;i<=100000;i++){
    }
    console.timeEnd('ran'); // 结束计时
    
    // while 循环
    console.time('dong');
    let i=1;
    while(i<=100000){
      i++;
    }
    console.timeEnd('dong');
    
    // do while 循环
    console.time('xin');
    let j=1;
    do{
      j++;
    }while(j<=100000);
    console.timeEnd('xin');
    
    ​

    clear  清空控制台

    console.clear

    trace()  打印函数的调用栈

    function test() {
      demo();
    }
    
    function demo() {
      foo();
    }
    
    function foo() {
      console.trace();
    }
    test();

    运行结果:

    3、process

    进程:进程对象,提供有关当前过程的信息和控制

    包括在执行node程序的过程中,如果需要传递参数,我们想要获取这个参数需要在process内置对象中

    启动进程:

     node index.js 参数1 参数2 参数3
    

    index.js文件如下:

    process.argv.forEach((val, index) => {  console.log(`${index}: ${val}`);});

    输出如下:

    C:\Users\儒雅的烤地瓜\Desktop\demo>node index.js val index
    0: D:\swinstall\nodejs\node.exe
    1: C:\Users\儒雅的烤地瓜\Desktop\demo\index.js
    2: val
    3: index
    
    C:\Users\儒雅的烤地瓜\Desktop\demo>

    arch   查看当前的cpu架构

    platform  查看当前的操作系统

    脚本模式:cmd👉node 脚本文件名👉回车。在脚本文件中,使用的是console.log输出命令
    console.log(process.platform);
    交互模式:首先需要先进入交互模式,cmd👉node👉回车
    process.arch  

    version  查看当前Nodejs版本号

    pid    查看当前进程的编号

    kill()   结束指定编号的进程

    4、Buffer

    缓冲区、缓冲器,在内存中临时存储数据的区域,用于存储网络传输的资源

    可以处理二进制以及非Unicode编码的数据。

    Buffer类实例化中存储了原始数据。Buffer类似于一个整数数组,在V8堆原始存储空间给它分配了内存。

    一旦创建了Buffer实例,则无法改变大小。

    let buf=Buffer.alloc(5,'abcd'); // 创建buffer,分配5个字节空间,存储数据

    一个英文字母占1个字节一个汉字占3个字节(utf-8编码)

    // 把buf对象转为字符串
    String(buf); / buf.toString();

    两者都是函数,但作用域不同String() 是全局函数,toString()是对象下的方法,使用的话需要调用

    番外:Node中Buffer.alloc()和Buffer.allocUnsafe()有什么区别?
    可以参考 Node.js 的文档,二者的区别在于 .alloc() 会对分配的空间进行填充,保证新分配的空间不会含有以前的数据。而 .allocUnsafe() 不会填充,所以更快。但是如果 .allocUnsafe() 之后立即 .fill(),其效果和 .alloc() 一样,但执行效率可能会略差(需要实测确定)。

     【后文传送门】👉【Nodejs 】Nodejs常见全局对象之模块对象全解析_02

    如果这篇【文章】有帮助到你,希望可以给【青春木鱼】点个👍,创作不易,相比官方的陈述,我更喜欢用【通俗易懂】的文笔去讲解每一个知识点,如果有对【前端技术】感兴趣的小可爱,也欢迎关注❤️❤️❤️【Nodejs 】Nodejs常见全局对象之模块对象全解析_02❤️❤️❤️,我将会给你带来巨大的【收获与惊喜】💕💕!

    展开全文
  • 哈希值:它是一个地址,用于栈对堆空间中对象的引用指向,不然栈是无法找到堆中对象的 GC分代年龄:记录幸存者区对象被GC之后的年龄age,,一般age为15之后下一次GC就会直接进入老年代 锁状态标志:记录一些加锁的...


    1、创建了Customer()实例 和 Account()实例
    在这里插入图片描述
    一个对象的内存结构包括:运行时元数据、类型指针、数据类型、对齐填充

    2、对象头里包括(64位机器占96位):运行时元数据(Mark Word)(占64位)、类型指针(Klass Point)(占32位)

    (1) 运行时元数据里又包括:哈希值(HashCode)、GC分代年龄、锁状态标志

    哈希值:31位的对象标识hashCode,采用延迟加载技术。调用方法System.identityHashCode()计算,并会将结果写到该对象头中。它是一个地址,用于栈对堆空间中对象的引用指向,不然栈是无法找到堆中对象的

    GC分代年龄(占4位):记录幸存者区对象被GC之后的年龄age,一般age为15(阈值为15的原因是因为age只有4位最大就可以将阈值设置15)之后下一次GC就会直接进入老年代,要是还没有等到年龄为15,幸存者区就满了怎么办,那就下一次GC就将大对象或者年龄大者直接进入老年代。

    锁状态标志:记录一些加锁的信息(我们都是使用加锁的话,在底层是锁的对象,而不是锁的代码,锁对象的话,那会改变什么信息来表示这个对象被改变了呢?也就是怎么才算加锁了呢?

    答案就是改变这个对象的对象头的锁信息来标识已经加锁,下一个线程来获取是获取不到的,底层是通过比对当前的线程的那个值与它所期望的值是否相同,这时候一直自旋直到与期望值相同,相同就获取到锁,反之则进入到阻塞队列等待,这个机制叫做CAS,比较并交换。)
    在这里插入图片描述在这里插入图片描述

    那么怎样查看对象的对象头的信息呢 ?

    第一步:导入第三方依赖

        <dependency>
          <groupId>org.openjdk.jol</groupId>
          <artifactId>jol-core</artifactId>
          <version>0.11</version>
        </dependency>
    

    第二步:打印信息

    System.out.println(ClassLayout.parseInstance(o).toPrintable());
    

    打印结果:

    在这里插入图片描述
    其中VALUE分析:
    在这里插入图片描述

    另外:锁的状态有两位数的空间标识,这样就可以实现用较少的空间去存储更多的信息,0 表示不可偏向,1 表示可偏向

    标志位锁状态
    01无锁
    01偏向锁
    00轻量级
    10重量级
    11GC标记

    在这里插入图片描述
    具体的 synchronized 膨胀机制见:https://blog.csdn.net/qq_43012792/article

    (2)类型指针:是对方法区中类元信息的引用

    3、实例数据:真实记录一个对象包含的数据,比如说一个person对象,里面可能包含年龄、性别、身高等等

    其中数据为字符串的,要引用到字符串常量池。

    想了解jdk8字符串常量池到底在那个地方存储的可以看这里。

    4、对齐填充:填充部分仅起到占位符的作用, 原因是HotSpot要求对象起始地址必须是8字节的整数,假如不是,就采用对齐填充的方式将其补齐8字节整数倍,那么为什么是8呢?原因是64位机器能被8整除的效率是最高的。
    在这里插入图片描述
    另外这个过程还会涉及到逃逸分析。我写了一篇逃逸分析的具体作用,感兴趣可以看看。

    基本数据类型所占字节数默认值包装类名称
    byte1(1字节=8位)0Byte
    short20Short
    int40Integer
    long80LLong
    double80.0dDouble
    float40.0fFloat
    char2‘\u0000’Character
    boolean1falseBoolean

    怎样快速记住这些类型的方法,请看这里。

    盘点一下 Java创建对象的几种方式(6大种)全面版

    尚硅谷深解Java虚拟机(JVM)内存结构各部分总结【三层划分】https://blog.csdn.net/qq_43012792/article/details/107358550

    有用点个关注,手留余香!😐 😐 😐

    展开全文
  • 一、 Intent 作用 Intent 是一个将要执行的动作的抽象的描述,一般来说是作为参数来使用,由Intent来协助完成Android各个组件之间的通讯。比如说调用startActivity()来启动一个activity,或者由broadcaseIntent()来...
  • 因为我们在使用 Spring、MyBatis 框架的时候都可以知道,并没有手动的去创建任何操作数据库的 Bean 对象的仅仅是一个接口定义,而这个接口定义竟然可以被注入到其他需要使用 Dao 的属性中去了,那么这一过程最...


    作者:小傅哥
    博客:https://bugstack.cn

    沉淀、分享、成长,让自己和他人都能有所收获!😄

    一、前言

    老司机,你的砖怎么搬的那么快?

    是有劲?是技巧?是后门?总之,那个老司机的代码总是可以很快的完成产品每次新增的需求,就像他俩是一家似的!而你就不一样了,不只产品经理还有运营、测试的小姐姐,都得给你买吃的,求着你赶紧把Bug修修,否则都来不及上线了。

    那为啥别人的代码总是可以很快的扩展新功能,而你的代码从来不能被重构只能被重写,小需求小改、大需求大改,没需求呢?没需求自己跑着跑着也能崩溃,半夜被运维薅起来:“你这怎么又有数据库慢查询,把别人业务都拖拉胯了!”

    有人说30岁的人都,还和刚毕业的做一样的活,是没进步的! 这太扯淡了,同样是同样的活,但做出来的结果可不一定是一样的,有人能用ifelse把产品功能凑出来,也有人可以把需求拆解成各个功能模块,定义接口、抽象类、实现和继承,运用设计模式构建出一套新增需求时候能快速实现,出现问题能准确定位的代码逻辑。这就像有人问:“树上有十只鸟,一枪打死一只,还有几只?”,你

    展开全文
  • new一个对象的背后,竟然这么多可以说的

    千次阅读 多人点赞 2021-09-14 21:29:52
    作为一名java开发工程师,每天要处理上千个对象,你居然说我没对象? 就算没有对象,那就new一个呗。 GirlFriend gf = new GirlFriend(); 不会就这么容易吧?当然不会! 那么GirlFriend对象到底是怎么产生的呢...
  • UML系列文章(14)---对象

    千次阅读 2022-04-06 16:56:09
    UML对象
  • 在学过JavaScript之后,我们都知道对象分为内置对象 、宿主对象 、自定义对象,我们经常用到的浏览器中的内置对象就是宿主对象的一种,浏览器的内置对象有很多,本文就来详细讲解一下History对象的属性与方法吧。...
  • [Redis系列]Redisson用途-分布式对象

    千次阅读 2020-11-25 13:08:55
    猿Why比较兴趣的这么几种: Object Bucket(通用对象桶) 可以避免直接使用Redis命令做数据存储和查询。Redission在执行命令的外层,封装了这个对象,一般string类型的数据存储、查询都是使用这个类型做暂存。 ...
  • 结果表明:组织支持各个维度对矿工不安全行为均显著影响,并且矿工行为意向在两者之间起一定的中介作用。在安全管理中,煤矿企业可通过提高矿工组织支持,干预矿工的不安全行为意向来降低矿工的不安全行为。
  • 要看的懂对象的创建过程,首先你得对Java虚拟机和Java基础以及JUC很是熟悉,比如类的加载过程,CAS、多线程、JVM的GC等等 首先好看一个图,我大概会根据图中的内容来分享这六个步骤(其实几个步骤不重要,只要包括...
  • 5w字长文带你彻底看懂Spring是怎么创建对象的!附10几张图,在创作这篇文章的过程中给官方提交了两个issue
  • 对象头的内部结构一张图了解所有细节 1、创建了Customer()实例 和 Account()实例 2、对象头里包括:运行时元数据、类型指针、实例数据、对齐填充 ① 运行时元数据里又包括:哈希值(HashCode)、GC分代年龄、锁状态...
  • MyBatis4大核心对象前言MyBatis四大核心对象SqlSessionFactoryBuiler(2+1)方法分析InputStream和ReaderSqlSessionFactoryDefaultSqlSessionFactoryExecutorSqlSessionManagerSqlSessionMapper四大对象生命周期总结 ...
  • Java面向对象课程总结及感想

    千次阅读 2021-03-13 15:03:44
    随着学习内容的深入,我发现我的担心是多余的,每门计算机语言都是相通的,我对python也一些接触,发现各大编程语言有着许多的共同之处。首先,它们的逻辑无非就是条件和循环,并且结合数据结构以及加减运算等逻辑...
  • 活动图与流程图的区别:不能将两个概念混淆,首先流程图着重描述处理过程,它的主要控制结构是顺序、选择和循环各个处理过程之间严格的顺序和时间关系,活动图描述的是对象活动的顺序关系所遵
  • 形象因素与调查对象(DOC格式)具有很重要的作用,一份合理的制度能够提供团队的凝聚力与向上力,需要形...该文档为形象因素与调查对象(DOC格式),是一份很不错的参考资料,具有较高参考价值,兴趣的可以下载看...
  • 文章目录C++类的对象和类的指针的区别指向地址的指针指针本身的大小指向数组的指针指针数组指向指针数组的指针多维指针数组函数参数中使用指针数组指针传址实现数组求和函数指针模仿C++ 类别函数指针数组对象指针...
  • 对他提出的这个问题很兴趣,深入研究了一下,便了这篇文章。 更新引用是JVM的职责 任何一款JVM的设计,采用任何一种GC算法进行对象的移动操作时,如何更新对象引用都是JVM的基本职责。也就是说,当移动对象时,...
  • 第一章 对象的概念

    千次阅读 2020-04-02 23:05:47
    第一章 对象的概念 “我们没有意识到惯用语言的结构多大的力量。可以毫不夸张地说,它通过语义反应机制奴役我们。语言表现出来并在无意识中给我们留下深刻印象的结构会自动投射到我们周围的世界。” -- Alfred ...
  • 常见的浏览器内置对象有:Window 、Location 、Navigator 、History 、Screen…… 本篇文章,我们就从最大的对象Window开始讲起 正文 Window对象在客户端JavaScript中扮演着核心的角色,它是客户端的一个全局内置...
  • 【实战】到底什么是C语言对象编程?

    万次阅读 2020-09-01 20:36:40
    ID:技术让梦想更伟大作者:ZhengNL整理:李肖遥前言在之前肖遥分享写过一篇关于面都对象的文章,真的可以,用C语言实现面向对象编程OOP , 本篇肖遥给大家整理了ZhengNL三合一...
  • 面向对象设计

    千次阅读 2018-07-16 10:52:39
    面向对象设计 面向对象基本概念 面向对象程序设计(Object-oriented ...类:类是变量与作用这些变量的方法集合,事物都具有其自身的属性和方法,通过这些属性和方法可以将不同的物质区分开来。 对象对象...
  • C# 匿名对象

    千次阅读 2017-09-07 13:16:26
    类 Product 包括 Color 和 Price 属性,以及你不兴趣的其他属性。 变量 Product products 是 对象的集合。 匿名类型声明以 new 关键字开始。 声明初始化了一个只使用 Product 的两个属性的新类型。 这将导致在...
  • Java对象内存布局概述

    千次阅读 多人点赞 2019-09-22 23:17:42
    以HotSpot虚拟机为例,对象在内存中可以分为三块区域:对象头、实例数据和对齐填充。其中,对象头包含Mark Word和类型指针,关于对象头的内容,在...对齐填充则不是必须存在的,只是起占位符的作用,比如Hot Spot...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 169,628
精华内容 67,851
热门标签
关键字:

对象感的作用有哪些