lyjlyj 发表于 2018-2-23 21:52:06

python中的其他知识1

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

#b.py
import a
b=5
if __name__ == "__main__":
        print b

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

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

t = Test()
t.name = "hack"#name是上面最后一句话的名字
print t.name














页: [1]
查看完整版本: python中的其他知识1