学python千万别想当然
学语言千万别想当然。对于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千万别想当然相关推荐
- python虽然火为什么工作少_学 Python 的理由千万条,不秃第一条
人生苦短,我学 Python 最近几年,人工智能的崛起,顺便带来了 Python 的学习潮.就拿我来说,虽然主页是 Java,但业余也学学 Python ,玩玩爬虫,做下数据分析,简直不要太溜.学 P ...
- python人工智能_人工智能人才缺口千万!学Python抓住风口机会
前不久教育界的一个消息,引发了广泛的关注. 今年9月,浙江三到九年级信息技术课将替换新教材,八年级将新增Python课程内容.新高一信息技术编程语言由VB替换为Python,大数据.人工智能.程序设计 ...
- 学 Python,你一定要知道这个马爹利
Alex Martelli,意大利计算机工程师,<Python in a Nutshell>第一.二版作者,<Python Cookbook>前两版与 <Python i ...
- 非计算机专业的人要如何学python?
对于零基础的初学者来说,python是一门十分友好的语言,所以越来越多的人想要学python.那么非计算机专业的人要如何学python?下面,千锋给大家分享几个学习方法,希望大家在学习python的路 ...
- python语言type board_菜鸟学Python,双手奉上老司机给上路新手总结的Python实战问题……...
针对Python这一话题每天后台都会有不少小伙伴提出问题,下面我就将这些问题进行汇整,产出"Python实战问题篇",我认为这些问题非常具有代表性,希望可以帮到大家. 第一类问题: ...
- 学习python一开始枯燥_编程零基础应当怎样开始学python?他说,看这三个经典方法...
很多时候,想就是不如做. 与其想着怎样开始学python,不如赶紧找份python教程先看起来! 当然,这只是告诉你,想不如开始做! 下面,我针对python初学介绍一下可以借鉴的方法! 1.看书 这 ...
- 对python的认识2000字_给那些想学Python的人之2000字谏言
1.这几天陆续收到很多读者.球友的留言.私信,说要怎么学Python?有没有基础的,偏小白的学习方法?我的回答是:等我统一答复. 小胖从不食言,今天就来说说我觉得一个零基础.想转行.一直不得法的人应该 ...
- python wx窗口无法关闭_菜鸟学Python,双手奉上老司机给上路新手总结的Python实战问题…...
针对Python这一话题每天后台都会有不少小伙伴提出问题,下面我就将这些问题进行汇整,产出"Python实战问题篇",我认为这些问题非常具有代表性,希望可以帮到大家. 第一类问题: ...
- 怎么学python-如何高效学 Python?
随着数据科学概念的普及,Python 这门并不算新的语言火得一塌糊涂.因为写了几篇用 Python 做数据分析的 文章,经常有读者和学生在留言区问我,想学习 Python,该如何入手?我经常需要根据他 ...
- python官网的软件好用吗-为何强烈不推荐去学python?
为何强烈不推荐去学python? 2019-11-05 13:13:00 36点赞 36收藏 19评论 创作立场声明:我很少对一种现象去说什么,但是对于曾经的启蒙老师不得不出来为它解释点什么.如果描述 ...
最新文章
- 11JavaScript中的对象
- 事半功倍的AI智能“同事” 天猫精灵新品全测评
- 计算机内存知识txt,计算机新手必备内存实用知识.docx
- counter()函数和most_common()函数
- Tempter of the Bone(HDU1010)
- 让代码自动补全的全套流程
- 1018.eclipse工具使用记录
- kafka c语言实现源码,Spring-Kafka源代码解析(消费者)
- mysql无法连接10061_Day062 连接数据库异常问题记录
- Leetcode 392.判断子序列
- java 框架_java三大主流框架是什么
- Anti-aliasing and Continuity with Trapezoidal Shadow Maps
- STM32之学习总结(正点原子精英版V1,不定时更新)
- 如何用最短的时间找到初级数据分析工作?
- html绘制直角坐标系,几何画板如何画直角坐标系并描点
- linux语句tail和grep组合,Linux grep、tail命令的混合使用
- Android-加速传感器或者OrientationEventListener做横竖屏切换
- Windows server 2003常用设置
- 美容院没有顾客怎么办
- CF进制转换专题进阶
热门文章
- 【CSDN|每日一练】Longest Continuous Increasing Subsequence
- 你不知道的几种素数判断方法,由浅入深,详解。(附送程序员必读好书)
- 一个计算机专业大专生大学两年来的学习经历
- Windows API串口编程详解
- 【修真院“善良”系列之十】初级Java程序员的学习路线 1
- 电商网站前台模板_湖州搜索引擎优化网站网络推广营销公司
- 计算机怎样安装硬盘,固态硬盘安装-笔记本和台式电脑分别如何安装SSD详细图文教程...
- NB-IOT相关的术语 SGW、PGW、LTE、RRC、E-UTRAN、EPC
- 819A - 如何成为一名职业程序员
- C语言绝对地址函数创建和读取函数