学语言千万别想当然。对于python语言,如果当做c++或者c#来学,是很危险的一件事。

比如

class student():

pass

a = student

b = student()

如果按照c++的理解,两者可以理解为a = new student, b = new student(),那么两个的含义是一样的。但对于python,这两个的含义是完全不同的。

由于python中所有的类都是对象,包括object类,int类,str类,统统都是对象。因此,a表示student对象的引用,注意,不是student生成的对象的引用,a就是student。甚至可以写c =a(),等价于c=student()。

而第二种形式b=student()表示b为student生成的对象的引用。如果非要测试,可以这样

class student():

pass

a = student

b = student()

print(type(a))

print(type(b))

type(a)为<class 'type'>,而type(b)为<class '__main__.student'>。可见,a就是student。如果明白了这些,可以在测试一道题目:

class student():

pass

a = student

b = student()

a.name = 'aaa'

c = student()

print(b.name)

print(c.name)

结果应该都是aaa,而不应该报错。为什么,因为python的类为动态的,不是静态的哦。改变了a就是改变了student,当然就改变了b,c。b,c是student的对象的引用嘛。

但可能有同学有疑问:c我可以理解,为什么b也会改变,b生成的时候,student还没有name成员呢。

问题很好,我当时也不明白,使得我不得不阅读了一下python的源码。简单说来,就是python的所有类都是对象。什么意思?简单画个图。实际上,a,b,c的关系是这样的:

当然,实际的关系要复杂的多,只是简单表示了一下,a,b,c,student的关系。可以看到,实际上b是指向student对象的,所以,无论什么时候,只要student发生了变化,那么b就可以看到。

Ps:本人python菜鸟,正在苦学python,写此文只是给遇到同样问题的人提醒一下,认识比较粗浅,请大牛们莫拍。

学python千万别想当然相关推荐

  1. python虽然火为什么工作少_学 Python 的理由千万条,不秃第一条

    人生苦短,我学 Python 最近几年,人工智能的崛起,顺便带来了 Python 的学习潮.就拿我来说,虽然主页是 Java,但业余也学学 Python ,玩玩爬虫,做下数据分析,简直不要太溜.学 P ...

  2. python人工智能_人工智能人才缺口千万!学Python抓住风口机会

    前不久教育界的一个消息,引发了广泛的关注. 今年9月,浙江三到九年级信息技术课将替换新教材,八年级将新增Python课程内容.新高一信息技术编程语言由VB替换为Python,大数据.人工智能.程序设计 ...

  3. 学 Python,你一定要知道这个马爹利

    Alex Martelli,意大利计算机工程师,<Python in a Nutshell>第一.二版作者,<Python Cookbook>前两版与 <Python i ...

  4. 非计算机专业的人要如何学python?

    对于零基础的初学者来说,python是一门十分友好的语言,所以越来越多的人想要学python.那么非计算机专业的人要如何学python?下面,千锋给大家分享几个学习方法,希望大家在学习python的路 ...

  5. python语言type board_菜鸟学Python,双手奉上老司机给上路新手总结的Python实战问题……...

    针对Python这一话题每天后台都会有不少小伙伴提出问题,下面我就将这些问题进行汇整,产出"Python实战问题篇",我认为这些问题非常具有代表性,希望可以帮到大家. 第一类问题: ...

  6. 学习python一开始枯燥_编程零基础应当怎样开始学python?他说,看这三个经典方法...

    很多时候,想就是不如做. 与其想着怎样开始学python,不如赶紧找份python教程先看起来! 当然,这只是告诉你,想不如开始做! 下面,我针对python初学介绍一下可以借鉴的方法! 1.看书 这 ...

  7. 对python的认识2000字_给那些想学Python的人之2000字谏言

    1.这几天陆续收到很多读者.球友的留言.私信,说要怎么学Python?有没有基础的,偏小白的学习方法?我的回答是:等我统一答复. 小胖从不食言,今天就来说说我觉得一个零基础.想转行.一直不得法的人应该 ...

  8. python wx窗口无法关闭_菜鸟学Python,双手奉上老司机给上路新手总结的Python实战问题…...

    针对Python这一话题每天后台都会有不少小伙伴提出问题,下面我就将这些问题进行汇整,产出"Python实战问题篇",我认为这些问题非常具有代表性,希望可以帮到大家. 第一类问题: ...

  9. 怎么学python-如何高效学 Python?

    随着数据科学概念的普及,Python 这门并不算新的语言火得一塌糊涂.因为写了几篇用 Python 做数据分析的 文章,经常有读者和学生在留言区问我,想学习 Python,该如何入手?我经常需要根据他 ...

  10. python官网的软件好用吗-为何强烈不推荐去学python?

    为何强烈不推荐去学python? 2019-11-05 13:13:00 36点赞 36收藏 19评论 创作立场声明:我很少对一种现象去说什么,但是对于曾经的启蒙老师不得不出来为它解释点什么.如果描述 ...

最新文章

  1. 11JavaScript中的对象
  2. 事半功倍的AI智能“同事” 天猫精灵新品全测评
  3. 计算机内存知识txt,计算机新手必备内存实用知识.docx
  4. counter()函数和most_common()函数
  5. Tempter of the Bone(HDU1010)
  6. 让代码自动补全的全套流程
  7. 1018.eclipse工具使用记录
  8. kafka c语言实现源码,Spring-Kafka源代码解析(消费者)
  9. mysql无法连接10061_Day062 连接数据库异常问题记录
  10. Leetcode 392.判断子序列
  11. java 框架_java三大主流框架是什么
  12. Anti-aliasing and Continuity with Trapezoidal Shadow Maps
  13. STM32之学习总结(正点原子精英版V1,不定时更新)
  14. 如何用最短的时间找到初级数据分析工作?
  15. html绘制直角坐标系,几何画板如何画直角坐标系并描点
  16. linux语句tail和grep组合,Linux grep、tail命令的混合使用
  17. Android-加速传感器或者OrientationEventListener做横竖屏切换
  18. Windows server 2003常用设置
  19. 美容院没有顾客怎么办
  20. CF进制转换专题进阶

热门文章

  1. 【CSDN|每日一练】Longest Continuous Increasing Subsequence
  2. 你不知道的几种素数判断方法,由浅入深,详解。(附送程序员必读好书)
  3. 一个计算机专业大专生大学两年来的学习经历
  4. Windows API串口编程详解
  5. 【修真院“善良”系列之十】初级Java程序员的学习路线 1
  6. 电商网站前台模板_湖州搜索引擎优化网站网络推广营销公司
  7. 计算机怎样安装硬盘,固态硬盘安装-笔记本和台式电脑分别如何安装SSD详细图文教程...
  8. NB-IOT相关的术语 SGW、PGW、LTE、RRC、E-UTRAN、EPC
  9. 819A - 如何成为一名职业程序员
  10. C语言绝对地址函数创建和读取函数