鱼C论坛

 找回密码
 立即注册
查看: 2192|回复: 0

[学习笔记] python中的其他知识1

[复制链接]
发表于 2018-2-23 21:52:06 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能^_^

您需要 登录 才可以下载或查看,没有账号?立即注册

x
1.import导入模块
reload()重新导入模块
2.模块的互相导入
  1. #a.py
  2. import b
  3. a =5
  4. if __name__ == "__main__":
  5.         print b
复制代码
  1. #b.py
  2. import a
  3. b=5
  4. if __name__ == "__main__":
  5.         print b
复制代码

解决模块互相导入出错的方法就是将要使用的别的模块的方法或者是变量放到
if __name__ == "__main__":里面
3.变量的作用域问题
错误:local variable 't' referenced before assignment(本地变量在分配空间之前就引用了)
最容易出错的地方就是如下:
  1. #test.py
  2. t = 10
  3. def Test():
  4.         #global t
  5.         a=10
  6.         if a==1:
  7.                 t=1
  8.         return t
  9. Test()
复制代码

此时就会出现上面的错误
上面的global就是一种解决办法
当我们在函数中使用一个全局变量的时候,一定要注意变量写上global
4.关于一些特殊命名的解析:
__init__:想这样的一些方法,就是内置的魔法方法
__a:当我们在类中定义了这样的属性时,我们在实例化对象时,不能在外面直接访问
_a:这个主要是我们在使用from ... import *这样的导入方式时,只要前面有至少有_(一般是一个),就不会导入
a__:当我们要使用系统已经定义的名字时,建议使用这样的命名方法,如def import等关键字写成def__
5.property问题:
这个只要是我们设置了一些私有的属性,除了使用定义的函数访问和设置时,可以有如下的方法
  1. #test.py
  2. class Test(object):
  3.         def __init__(self):
  4.                 self.__name = "ha"
  5.         def set(self,value):
  6.                 self.__name = value
  7.         def get(self):
  8.                 return self.__name
  9.         name = property(fget=get,fset=set)

  10. t = Test()
  11. t.name = "hack"#name是上面最后一句话的名字
  12. print t.name
复制代码














小甲鱼最新课程 -> https://ilovefishc.com
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

小黑屋|手机版|Archiver|鱼C工作室 ( 粤ICP备18085999号-1 | 粤公网安备 44051102000585号)

GMT+8, 2025-5-14 12:06

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

快速回复 返回顶部 返回列表