类不带括号我们叫赋值,带括号我们叫实例化。

什么是赋值?

a=7
b=a
id(7)
140726814208448
id(a)
140726814208448
id(b)
140726814208448

从上面例子中我们可以看出变量a赋值7、b赋值a,它们的内存地址都是相同的。

它们是指向了同一个内存地址,而不是 b 指向 a 然后a在指向内存地址。





不是:



注:id() 函数用于获取对象的内存地址。

什么是实例化?

“类提供默认行为,是实例的工厂”

怎么理解这句话呢?所谓工厂,就是可以用同一个模子做出很多具体的产品。类就是那个模子,实例就是具体的产品。所以,实例是程序处理的实际对象。

类是由一些语句组成,但是实例,是通过调用类生成,每次调用一个类,就得到这个类的新的实例。

不带括号-赋值

class Tea:
def __init__(self):
print('Dahongpao Tea') a = Tea
print(id(Tea)) # 2186368764424
print(id(a)) # 2186368764424
print(a) # <class '__main__.Tea'>
print(Tea) # <class '__main__.Tea'>

从上面例子中输出的内容我们可以看出:

a = Tea类 所指向的是同一内存地址,而在第一点我们已经知道,赋值就是指向同一内存地址,所以得出不带括号的是赋值。

带括号-实例化

class Tea:
def __init__(self):
print('Dahongpao Tea') b = Tea()
print(id(Tea))
print(id(b))
print(Tea)
print(b)

输出结果为:

Dahongpao Tea			# 这是__init__输出的
1386207499400 # print(id(Tea))
1386196961736 # print(id(b))
<class '__main__.Tea'> # print(Tea)
<__main__.Tea object at 0x00000142BFC709C8> # print(b)

从上面例子中输出结果最后我们可以知道

b为Tea类实例化一个对象而且他们的内存地址也一样了

python 类 - 带括号是实例化,不带括号是赋值。

————————————————

版权声明:本文为CSDN博主「无梦生7」的原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接及本声明。

原文链接:https://blog.csdn.net/s1156605343/article/details/104275730

Python中类-带括号与不带括号的区别的更多相关文章

  1. python实例化时带括号与不带

    1.首先这个标题题目不是很准确,但一时又想不到更好的标题所以只好用这个标题,下面我们来看看为什么. 首先我们要明白python中类的实例化是要加上括号的,那么不加括号是什么意思你,看代码 class ...

  2. Python调用函数带括号和不带括号的区别

    1.不带括号时,调用的是这个函数本身 ,是整个函数体,是一个函数对象,不需等该函数执行完成 2.带括号(此时必须传入需要的参数),调用的是函数的return结果,需要等待函数执行完成的结果 如果函数本 ...

  3. js中new函数后带括号和不带括号的区别

    用new创建构造函数的实例时,通常情况下new 的构造函数后面需要带括号(譬如:new Parent()). 有些情况下new的构造函数后带括号和不带括号的情况一致,譬如: function Pare ...

  4. Python推导式详解,带你写出比较精简酷炫的代码

    Python推导式详解,带你写出比较精简酷炫的代码 前言 1.推导式分类与用法 1.1 列表推导 1.2 集合推导 1.3 字典推导 1.4 元组推导?不存在的 2.推导式的性能 2.1 列表推导式与 ...

  5. python中的括号以及元组和列表的区别

    1 python中的括号 1.1 花括号 花括号表示的是字典,即键值对. 1.2 方括号 方括号表示的是列表,类似于数组,但是可以允许存放混杂类型的数据. 1.3 圆括号 圆括号表示的是元组,类似于列 ...

  6. python +selenium的 里面还自带case 然后也有生成报告的模板

    https://github.com/huahuijay/python-selenium2这个就是 python +selenium的  里面还自带case  然后也有生成报告的模板 

  7. Python输出16进制不带0x补零,整数转16进制,字符串转16进制

    Python输出16进制不带0x补零,整数转16进制,字符串转16进制   在开发中,我们偶尔会遇到需要将数据通过控制台打印出来,以检查数据传输的准确性.例如调试服务端刚接到的二进制数据(里面包含很多 ...

  8. #Python绘制 文本进度条,带刷新、时间暂缓的

    #Python绘制 文本进度条,带刷新.时间暂缓的 #文本进度条 import time as T st=T.perf_counter() print('-'*6,'执行开始','-'*6) maxx ...

  9. python web开发-flask中的url带斜线和不带斜线区别详解

    通过flask进行路由配置的时候,有一个细节,就是同样的url,带上"/"和不带"/"有什么区别. 举例说明: 比如有个url,名字为"/url&qu ...

  10. python刷LeetCode:20. 有效的括号

    难度等级:简单 题目描述: 给定一个只包括 '(',')','{','}','[',']' 的字符串,判断字符串是否有效. 有效字符串需满足: 左括号必须用相同类型的右括号闭合.左括号必须以正确的顺序 ...

随机推荐

  1. Centos7-编译安装zlib

    1.解压并进入zlib目录tar xf zlib-1.2.11.tar.gz cd zlib-1.2.11 2.查看编辑参数[root@manage zlib-1.2.11]#./configure ...

  2. java中jre\bin目录和jdk\bin目录下的工具功能介绍

    转自:https://blog.csdn.net/eclipse_yin/article/details/51051096 jre/bin目录下面工具说明 javac:Java编译器,将Java源代码 ...

  3. 线程池ExecutorService的使用

    转载自: 海子 Java并发编程:线程池的使用 在前面的文章中,我们使用线程的时候就去创建一个线程,这样实现起来非常简便,但是就会有一个问题: 如果并发的线程数量很多,并且每个线程都是执行一个时间很短 ...

  4. JavaWeb之文件上传、下载

    时间:2016-12-17 18:07 --文件上传概述上传不能使用BaseServlet1.文件上传的作用    例如网络硬盘,就是用来上传和下载文件的.2.文件上传对表单的限制    1)必须使用 ...

  5. IDEA 创建Maven Web工程

    一.Maven环境搭建 二.Maven常用命令 mvn clean 清除生成的target文件 mvn install 生成target文件 mvn clean install 相当于先删除targe ...

  6. SpEL表达式注入漏洞学习和回显poc研究

    目录 前言 环境 基础学习和回显实验 语法基础 回显实验 BufferedReader Scanner SpEL漏洞复现 低版本SpringBoot中IllegalStateException CVE ...

  7. 分布式系列-分布式ID

    一.数据库自增(单实例) 1.方案描述 基于数据库自增ID(auto_increment)利用其来充当分布式ID.实现方式就是用一张表来充当ID生成器,当我们需要ID时,向表中插入一条记录返回主键ID ...

  8. 最长回文子序列---DP

    问题描述 给定一个字符串s,找到其中最长的回文子序列.可以假设s的最大长度为1000. 解题思路 1.说明 首先要弄清楚回文子串和回文子序列的区别,如果一个字符串是"bbbab", ...

  9. 前端使用a标签启动本地.exe程序

    目录 1,需求 2,效果图 3,实现原理 4,代码 5,注意事项 1,需求 最近有一个需求,在web页面上有一个按钮,点击按钮,调起本地的.exe程序客户端,我在网上找了很多,感觉都不完整,所以自己总 ...

  10. MongoDB(1)- 入门介绍

    MongoDB 数据库 MongoDB 是一个文档数据库,旨在简化开发和扩展 MongoDB 中的记录是一个文档 Document,是由字段和值对组成的数据结构 MongoDB 文档类似于 JSON ...