configure_traits 特征酸洗
trait pickling with configure_traits
我使用 traitsui 文档中的第一个示例代码:
from traits.api import HasTraits, Str, Int
import traitsui
class SimpleEmployee(HasTraits):
first_name = Str
last_name = Str
department = Str
employee_number = Str
salary = Int
sam = SimpleEmployee()
sam.configure_traits(filename='/Volumes/FAT/Python/Tests/test.dat')
唯一的变化是 configure_traits() 中的文件名规范。
1 - 当文件不存在时,不创建新文件。有这样的行为就好了。
2 - 如何创建这个文件?使用
import pickle
pickle.dump( sam, open( '/Volumes/FAT/Python/Tests/test.dat', "wb" ) )
创建文件
ctraits.traits
__newobj__
p0
(c__main__
SimpleEmployee
p1
tp2
Rp3
(dp4
S'salary'
p5
I0
sS'__traits_version__'
p6
S'4.5.0'
p7
sS'first_name'
p8
S''
p9
sS'last_name'
p10
g9
sS'employee_number'
p11
g9
sS'department'
p12
VManagement
p13
sb.
以 'Management' 作为部门(当然,我在对话框中输入了这个值)。
但是又运行
sam.configure_traits(filename='/Volumes/FAT/Python/Tests/test.dat')
更改部门字段并单击“确定”关闭对话框不会更改文件内容(正如文档中应该做的那样)。
(MacOS X)
我发现出了什么问题:configure_traits() 应该在模态模式下变为 运行:
from traits.api import HasTraits, Str, Int
from traitsui.api import View, OKCancelButtons
class SimpleEmployee(HasTraits):
first_name = Str
last_name = Str
department = Str
employee_number = Str
salary = Int
sam = SimpleEmployee()
sam.configure_traits(filename='/Volumes/FAT/Python/Tests/test.dat',kind='modal')
现在工作正常。
至于我的问题 #1,是的,如果需要会创建一个新文件
我使用 traitsui 文档中的第一个示例代码:
from traits.api import HasTraits, Str, Int
import traitsui
class SimpleEmployee(HasTraits):
first_name = Str
last_name = Str
department = Str
employee_number = Str
salary = Int
sam = SimpleEmployee()
sam.configure_traits(filename='/Volumes/FAT/Python/Tests/test.dat')
唯一的变化是 configure_traits() 中的文件名规范。
1 - 当文件不存在时,不创建新文件。有这样的行为就好了。
2 - 如何创建这个文件?使用
import pickle
pickle.dump( sam, open( '/Volumes/FAT/Python/Tests/test.dat', "wb" ) )
创建文件
ctraits.traits
__newobj__
p0
(c__main__
SimpleEmployee
p1
tp2
Rp3
(dp4
S'salary'
p5
I0
sS'__traits_version__'
p6
S'4.5.0'
p7
sS'first_name'
p8
S''
p9
sS'last_name'
p10
g9
sS'employee_number'
p11
g9
sS'department'
p12
VManagement
p13
sb.
以 'Management' 作为部门(当然,我在对话框中输入了这个值)。
但是又运行
sam.configure_traits(filename='/Volumes/FAT/Python/Tests/test.dat')
更改部门字段并单击“确定”关闭对话框不会更改文件内容(正如文档中应该做的那样)。
(MacOS X)
我发现出了什么问题:configure_traits() 应该在模态模式下变为 运行:
from traits.api import HasTraits, Str, Int
from traitsui.api import View, OKCancelButtons
class SimpleEmployee(HasTraits):
first_name = Str
last_name = Str
department = Str
employee_number = Str
salary = Int
sam = SimpleEmployee()
sam.configure_traits(filename='/Volumes/FAT/Python/Tests/test.dat',kind='modal')
现在工作正常。
至于我的问题 #1,是的,如果需要会创建一个新文件