下面的3个print一个是在模块下面,一个是函数里面,一个是类名下面(不在方法里面)

1、 运行这段代码可以发现第3行和11行可以打印出来。第7行没有打印出来。所以可以放心,函数或者方法里面就算有错误,不调用它是不可能报错的,这是运行报错排查的基本常识,怎么也不要瞎找错误把抛错怪罪到这一块代码里面去。

2、如果全局模块下写了太多东西,每次导入模块都会运行模块全局下的代码,很浪费运行,而且全局下面写太多东西容易出错。尤其是作为被导入的基础模块,更不应该这么写,一定要把模块命名空间下沉到类,使用类。

3、有人说喜欢写函数不喜欢写类,写类有很多self,看的头晕。拿函数和类做比较,完全是牛头不对马嘴,基本概念很模糊。拿面向过程和面向对象编程比还是可以的,拿函数和类的比就是风马牛不相及。

4、引用百度百科:类(Class)是面向对象程序设计(OOP,Object-Oriented Programming)实现信息封装的基础。类是一种用户定义类型,也称类类型。每个类包含数据说明和一组操作数据或传递消息的函数。类的实例称为对象。

如果非要比,拿python模块和类的对象比,那么还差不多,这两者相同点非常多。(问猪和狗有什么区别这还差不多。猪和嘴巴这个属性有什么区别,猪和吃东西这个动作有什么区别,那就是不成立的问题了)

5、写在类名下面的东西,就算不调用类,也是会运行的,只有函数(模块下面的)和方法(类下面的)里面的代码才不会运行。

一些过时的东西,就算不再调用了,如果直接写在类名下面,只要项目用了这个模块,还是会报错的。比如直接在类名下面写下面这句

conn= pymysql.connect(host='127.0.0.1', port=3306, user='root', passwd='', db='tkq1', charset='utf8')

如果有一天,你修改了数据库的密码,没修改这里,即使你从此再也不使用这个类了,运行项目仍然会报错。抑制这个报错,就算非要把connect这个属性作为类属性,可以使用享元模式或者单例模式,在方法中进行数据库连接,这样就不会造成没调用这个类,没用到数据库,项目还报这里错误;而且这段连接数据库的代码直接写在类名下还会造成浪费连接时间,导致程序启动慢(java里面的单例模式 饿汉和饱汉的影响这着差不多)。

python是用来初始化_python的初始化运行了哪些?相关推荐

  1. python参数初始化_python参数初始化

    python 初始化参数怎么设置 class A(object): def __init__(arg): self.arg = arg 在__init__中定义 python中类的初始化函数形参=0含 ...

  2. python初始化_Python list初始化

    1.基本方法.lst = [1, 2, 3, 4, 5] 2.初始化连续数字.>>> lst = [n for n in range(5, 10)] >>> pri ...

  3. python空列表列表初始化_Python如何初始化列表?

    Python是一种非常灵活的语言,可以通过多种方式执行单个任务,例如,可以通过多种方式执行初始化列表.下面本篇文章就来带大家了解几种Python初始化的方法,并比较一下这几种方法的效率,希望对大家有所 ...

  4. python实时获取子进程输出_Python 从subprocess运行的子进程中实时获取输出的例子...

    有些时候,我们需要将某些程序放到子进程中去运行,以达到整合系统的目的.在Python中,一个非常好的选择就是使用subprocess模块,本模块为开辟子进程去执行子程序提供了统一的接口,更加便于学习和 ...

  5. python编写代码时零_python – KeyError:运行打包代码时为0L

    我有一个名为rra.py的脚本,它具有以下skelton结构: usn="" usnl=[] from bs4 import BeautifulSoup import re imp ...

  6. python debug run 结果不同_Python:PyCharm中运行与调试模式下的不同行为

    在没有附加调试器的情况下从PyCharm运行PyCharm时,Python代码的行为与使用pydev运行时的行为不同.在 我在PyCharm中运行一个POXSDN控制器和一个来自控制台的Mininet ...

  7. python获取子进程返回值_Python 从subprocess运行的子进程中实时获取输出的例子 Python如何抓取程序的输出?...

    关于python中用subprocess调用exe子进程的问题不懂我的人有什么资格对我指指点点,不了解我的人凭什么对我说三道四的. python杀死子进程后继续执行后面程序 程序a(python写成) ...

  8. python怎么打开文档_python打开怎么运行

    {"moduleinfo":{"card_count":[{"count_phone":1,"count":1}],&q ...

  9. python中如何只执行一次初始化init工作

    只执行一次初始化init工作: 这篇文章:python中的单例:让类创建的对象,在系统中只有唯一的一个实例 讲到了对__new__进行改造后,每次都会得到第一次被创建对象的引用 但是:初始化方法还是会 ...

最新文章

  1. 批量导入导出站点权限site permissions
  2. 网络推广产品浅析网站SEO文章更新要注意哪些因素?
  3. 最优化——单纯形法学习心得
  4. eui自带字体是什么_阿里巴巴居然出品了两款字体,免费可商用,网友:太良心了...
  5. 程序员面试金典适合java么,【程序员面试金典】面试题 01.03. URL化(示例代码)
  6. POI读取单元格信息及单元格公式
  7. [SoapUI] Mock Service
  8. 【学习随笔】iquery初涉
  9. zabbix监控哪些东西_监控系统选型,一篇全搞定
  10. Spring MVC开发初体验
  11. hdu4521 线段树+dp
  12. 关于SQL\SQL Server的三值逻辑简析
  13. 《上瘾》学习笔记(第一、二章)
  14. Java24种设计模式(第二种)--代理模式(Proxy Pattern)
  15. ccf等会议排行参考
  16. c语言 以时间做种子的随机数,为什么用时间做种子,随机数还是一样的?
  17. 简单交错序列前N项和
  18. Fri Feb 22 20:22:00 CST 2019字符串型转date
  19. shell-脚本集合
  20. i5 12600kf参数i5 12600kf功耗

热门文章

  1. 管理软件公司与互联网公司的区别
  2. 针对Linux ASP.NET MVC网站中 httpHandlers配置无效的解决方案
  3. c语言兔子洞,数据结构水题选讲 - osc_y08db3kb的个人空间 - OSCHINA - 中文开源技术交流社区...
  4. 20分钟完成Mac上的 LNMP 环境部署,优雅·高效开发(Docker方式)
  5. 【ArcGIS风暴】ArcGIS Editor for OSM中文教程(2):下载及加载OSM数据
  6. WCF服务自托管(Self-Hosting)
  7. linux shell之find高级点的用法
  8. Android之二维码生成和识别
  9. Android之webview与js交互
  10. php中有两个美元符号$$的变量——可变变量