前言

通常有这个疑问应该是刚刚入门的python小白或者是已经在使用一些框架了但是基础薄弱的小伙伴(自己瞎想的····) 下面我们来详细解答

概述

首先类不带括号我们叫赋值,带括号我们叫实例化
本文主要解决一下几个问题:

什么是赋值?

什么是实例化?

不带括号-赋值

带括号-实例化

什么是赋值?

来者皆客,先上杯茶(例子),你品,你细品:

>>> a = 7
>>> b = a
>>> id(7)
140712499257936
>>> id(a)
140712499257936
>>> id(b)
140712499257936
>>>

从上面例子中我们可以看出变量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 类 - 带括号是实例化,不带括号是赋值。

作为一个萌新,自己的各方面能力都还不足,所以难免有出错,望大佬多加指正。如果这篇博客有帮到你或者觉得小7写得还可以的话,请给小7点个赞吧!每一个赞都是我努力前行的动力呀!谢谢啦!

Python中类-带括号与不带括号的区别(通俗易懂)相关推荐

  1. Python中类-带括号与不带括号的区别

    引言 有时候看到群里一些人问一些基础的知识,虽然很基础,网上随便一查即可知道,但是往往很多人就是连这些基础的知识都很模糊,甚至不清楚,这里再来复习一下python中类的一个知识点(仅此). 类的定义 ...

  2. 使用装饰器时带括号与不带括号的区别

    之前我们在一个用于统计函数调用消耗时间的装饰器中写了一个装饰器,用于统计函数调用时间.代码如下: from time import time from time import sleepdef cou ...

  3. python装饰器带参数函数_python带参数装饰器的两种写法

    python带参数装饰器的两种写法 前言 最近在实现一个装饰器的过程中发现了一个很有意思的地方,在博客里面分享出来 不同的写法 三层函数嵌套,实现了可传参数的一个装饰器. import logging ...

  4. 0基础学python培训班_[长文] 学Python不用培训班,一篇文章带你入门

    最近有许多小伙伴后台联系我,说目前想要学习Python,但是没有一份很好的资料入门.一方面的确现在市面上Python的资料过多,导致新手会不知如何选择,另一个问题很多资料内容也很杂,从1+1到深度学习 ...

  5. 在python中,用正则表达式提取多层括号中最外层括号包含的内容

    提取多层括号中最外层括号包含的内容有几种方式,那么用正则表达式该怎么实现呢? 在python中,用正则表达式提取多层括号中最外层括号包含的内容 比如有一个字符串 : 学习python中有什么不懂的地方 ...

  6. python中for循环是可以带else的

    python中for循环是可以带else的,不满足for循环的条件,可以执行ELSE的内容!#!user/bin/env python #-*-coding:utf-8 -*- # Author: S ...

  7. python黑科技:Python大佬用20行代码带你打造一个微信聊天机器人,真神了~

    如何用20行Python代码打造一个微信群聊助手? 1.安装python环境 2.安装python的itchat库 3.安装itchat库 4.Linux 5.申请图灵机器人API和key 6.编写p ...

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

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

  9. pythonocr训练模型_cnocr: cnocr是用来做中文OCR的Python 3包。cnocr自带了训练好的识别模型,安装后即可直接使用...

    English README. cnocr 使用交流QQ群 欢迎扫码加入QQ交流群: Release Notes Update 2020.04.21: 发布 cnocr V1.1.0 V1.1.0对代 ...

  10. python修改文件名称唯美_5行代码搞定14种常见图的python可视化库,还自带16种优美主题,真是太喜欢了...

    原创:小dull鸟 python数据分析之禅 原文链接: 5行代码搞定14种常见图的python可视化库,还自带16种优美主题,真是太喜欢了​mp.weixin.qq.com 有时候我们做数据可视化并 ...

最新文章

  1. Wireshark数据抓包教程之认识捕获分析数据包
  2. mysql profiling表_mysql8 参考手册-INFORMATION_SCHEMA PROFILING表
  3. MySQL InnoDB索引介绍及优化
  4. IBASE read header
  5. 在家办公这半年,让我开始热爱生活
  6. Mqtt客户端与服务端通讯
  7. 有书共读:《穷查理宝典》
  8. 利用count if()+条件格式突出显示多余的重复值
  9. stm32F407中arr与psc以及pwm之间的关系
  10. Lenient assertions(Unitils介绍三)
  11. tao.Opengl
  12. mysql ssd 应用_MySQL Disk--SSD 特性
  13. 分布式系列_MQ_01_MQ简介
  14. 学习软件之epub阅读器推荐
  15. excel vba 修改单元格的颜色
  16. svn提交代码到远程服务器
  17. 廊坊市计算机考试题库,河北省廊坊市2018_2019学年高二物理下学期期中试题(含解析)...
  18. 嵌入式linux rootfs,【转】制作 嵌入式 linux 根文件系统 rootfs
  19. powerbi日期转化error
  20. aix kill java_AIX环境Java进程cpu瓶颈分析(转)

热门文章

  1. CentOS虚拟机NAT模式网络配置
  2. 80后小伙白手起家做照明生意,为他创造了六千万元的业绩
  3. android8.1 规避selinux对特定设备的访问权限
  4. Mybatis学习之数据库字段与实体属性的映射
  5. Android 圆角圆形ImageView(超简单实现)
  6. uni-app里面的打开相册,在安卓10上图片不允许访问
  7. ChatGPT类工具如何实现「降维打击」| 聊天机器人闭门研讨观点总结
  8. 寻找基于SaaS研发总监
  9. Spring Boot Security持久化令牌7
  10. Apache POI 密码保护只读word文档在WPS中无效