阿鲲的博客 主修软件工程和算法模型,极客成长中

python in linux

2019-03-08
jktian

阅读:


python in linux

$ where is python # 找到Python可执行文件的位置

~/.conda/envs/python36/bin/python

# sublime 安装插件

选项卡:preferences ==> package-settings ==> package-control–user 位置:~/.config/sublime-text-3/Packages/User 文件package control.sublime-settings–user: 人工下载channel.json文件 “channels”:[ “/home/jktian/sublime3-channel/channel_v3.json” ],

anaconda

python36的位置:/home/jktian/.conda/envs/python36/bin/python

解决方法

eval(): 将字符串str当成有效的表达式来求值并返回计算结果。最终的结果是一个右值 globals(): 左值。返回的是当前模块的全局变量。若此模块中定义了类,则包含类 locals():s返回的是当前所在最小命名空间的局部变量的一个拷贝。如果在类的一个函数中,则是函数内的局部变量.只读 vars():返回对象object的属性和属性值的字典对象。如果默认不输入参数,就打印当前调用位置的属性和属性值,相当于locals()的功能。如果有参数输入,就只打印这个参数相应的属性和属性值 setattr()/getattr()

类和实例的命名空间

两者的__dict__不同 self.var表示的是实例的成员变量,只出现在实例.__dict__中 dir()命令查看模块的属性和成员变量 类的实例动态增加属性和方法

locals()['self'].setattr('but_cnt'+name[1],Button(frame.fra_cnt,text=name,font=font,fg=fg_color,bg=bg_color,width=width,command=funcname)

当python在使用变量时,会按照下面的步骤去搜索: 函数或类的局部变量。 全局变量。 内置变量。 setattr() getattr()

困境

globals()是全局的,可读可写,但是只有类的属性,即不是self的,修改了没用 locals()可以返回具体的对象的属性,但是是深赋值。 本质上是动态和静态。只能在动态运行时才能确定的,只能用setattr(),地址传递

函数的嵌套与返回

装饰器的原理:返回一个函数名

从windows迁移到linux

原本python程序tkinter在Linux上显示不友好,认为界面编程还是windows优于linux 结果,window7还要更新组件才能运行 果断返回Linux


上一篇 环境搭建

Comments

Content