我正在编写一个程序,用于对导入模块的Python文件列表进行分类.因此,我需要扫描.py文件的集合,并返回它们导入的模块的列表.例如,如果我导入的其中一个文件包含以下行:
import os
import sys, gtk
Run Code Online (Sandbox Code Playgroud)
我希望它返回:
["os", "sys", "gtk"]
Run Code Online (Sandbox Code Playgroud)
我玩modulefinder并写道:
from modulefinder import ModuleFinder
finder = ModuleFinder()
finder.run_script('testscript.py')
print 'Loaded modules:'
for name, mod in finder.modules.iteritems():
print '%s ' % name,
Run Code Online (Sandbox Code Playgroud)
但这不仅仅返回脚本中使用的模块.作为脚本中的一个例子,它只包含:
import os
print os.getenv('USERNAME')
Run Code Online (Sandbox Code Playgroud)
从ModuleFinder脚本返回的模块返回:
tokenize heapq __future__ copy_reg sre_compile _collections cStringIO _sre functools random cPickle __builtin__ subprocess cmd gc __main__ operator array select _heapq _threading_local abc _bisect posixpath _random os2emxpath tempfile errno pprint binascii token sre_constants re _abcoll collections ntpath threading opcode _struct _warnings math shlex …Run Code Online (Sandbox Code Playgroud) 我对常数对象有疑问.在以下程序中:
class const_check{
int a;
public:
const_check(int i);
void print() const;
void print2();
};
const_check::const_check(int i):a(i) {}
void const_check::print() const {
int a=19;
cout<<"The value in a is:"<<a;
}
void const_check::print2() {
int a=10;
cout<<"The value in a is:"<<a;
}
int main(){
const_check b(5);
const const_check c(6);
b.print2();
c.print();
}
Run Code Online (Sandbox Code Playgroud)
void print()是类的常量成员函数const_check,因此根据常量的定义,任何更改尝试都会int a导致错误,但程序对我来说很好.我想我在这里有些困惑,任何人都可以告诉我为什么编译器没有将其标记为错误?
这是我的困境.
基本上,我需要一个表中的列来保持未知长度的字符.但我很好奇,如果在一个列中使用VARCHAR(MAX)或NVARCHAR(MAX)可能会出现Sql Server性能问题,例如:'这次'我只需要存储3个字符,而且大部分时间我只需要存储10个字符.但是在该专栏中可能会有几千个字符,甚至可能是一百万字,这是一个很小的机会,这是不可预测的.但是,我可以保证它不会超过2GB的限制.
我只是好奇是否有任何性能问题,或者可能有更好的方法来解决这个问题.
在我的实验性编程语言的解释器中,我有一个符号表.每个符号由一个名称和一个值组成(值可以是:例如:string,int,function等类型).
首先,我用一个向量表示该表,并通过符号迭代检查给定的符号名称是否合适.
然后,我使用地图,在我的情况下map<string,symbol>,总是比迭代迭代矢量更好,但是:
解释这部分有点难,但我会试试.
如果在我的语言的程序中第一次检索变量,当然必须找到它在符号表中的位置(现在使用向量).如果我每次执行该行时都会迭代向量(想想一个循环),那么它将非常慢(因为它目前是,几乎和microsoft的批处理一样慢).
所以我可以使用地图来检索变量: SymbolTable[ myVar.Name ]
但想想以下内容:如果第一次找到仍使用向量的变量,我可以将它的精确整数位置存储在向量中.这意味着:下次需要它时,我的解释器知道它已被"缓存"并且不会在符号表中搜索它,而是执行类似的操作SymbolTable.at( myVar.CachedPosition ).
现在我的(相当难的?)问题:
我应该使用向量作为符号表,同时缓存向量中变量的位置吗?
我应该使用地图吗?为什么?[]运算符的速度有多快?
我应该使用完全不同的东西吗?
我试图通过以下setInfoClass方法将自定义类设置为迭代器:
使用此方法设置将在调用getFileInfo和getPathInfo时使用的自定义类.传递给此方法的类名必须从SplFileInfo派生.
我的班级是这样的(简化示例):
class MyFileInfo extends SplFileInfo
{
public $props = array(
'foo' => '1',
'bar' => '2'
);
}
Run Code Online (Sandbox Code Playgroud)
迭代器代码是这样的:
$rit = new RecursiveIteratorIterator(
new RecursiveDirectoryIterator('/some/file/path/'),
RecursiveIteratorIterator::SELF_FIRST);
Run Code Online (Sandbox Code Playgroud)
既然RecursiveDirectoryIterator是通过继承DirectoryIterator也是一个SplFileInfo对象,它提供了setInfoClass方法.它没有在手册中列出,但反射显示它在那里:
shell$ php --rc RecursiveDirectoryIterator
// ...
Method [ <internal:SPL, inherits SplFileInfo> public method setInfoClass ] {
- Parameters [1] {
Parameter #0 [ <optional> $class_name ]
}
}
Run Code Online (Sandbox Code Playgroud)
一切都很好,但是在迭代目录时
$rit->getInnerIterator()->setInfoClass('MyFileInfo');
foreach($rit as $file) {
var_dump( $file );
}
Run Code Online (Sandbox Code Playgroud)
我得到以下奇怪的结果
object(MyFileInfo)#4 (3) …Run Code Online (Sandbox Code Playgroud) 我正在努力绕过CSS3 Gradients(特别是径向的),并且这样做我想我已经为自己设置了一个相对艰难的挑战.
在Adobe Illustrator中,我创建了以下"按钮"样式.

为了创建这个图像,我创建了一个背景颜色为rgb(63,64,63)或的矩形#3F403F,然后"风格化"它的边界半径为15px.
然后我使用了25%不透明度,8px模糊,从中心白色的"内部发光".最后,我在它上面应用了3pt白色笔画.(如果您想要复制它,我告诉您所有这些,如果上面的图像不够用.)
所以,我的问题是:
是否可以使用CSS重新创建这个"按钮"而无需图像?
我知道Internet Explorer的"局限性"(为了这个实验,我不能给猴子们).我也知道webkit中的小'bug',它错误地渲染了一个背景颜色,边框半径和边框(背景颜色与颜色不同)的元素 - 它让背景颜色在弯曲处渗透角落.
到目前为止,我最好的尝试是相当可悲的,但这里的参考是代码:
section#featured footer p a
{
color: rgb(255,255,255);
text-shadow: 1px 1px 1px rgba(0,0,0,0.6);
text-decoration: none;
padding: 5px 10px;
border-radius: 15px;
-moz-border-radius: 15px;
-webkit-border-radius: 15px;
border: 3px solid rgb(255,255,255);
background: rgb(98,99,100);
background: -moz-radial-gradient(
50% 50%,
farthest-side,
#626364,
#545454
);
background: -webkit-gradient(
radial,
50% 50%,
1px,
50% 50%,
5px,
from(rgb(98,99,100)),
to(rgb(84,84,84))
);
}
Run Code Online (Sandbox Code Playgroud)
基本上,太可怕了.感激地接受任何提示或提示,并提前感谢他们!
我有一个类型列表的对象,我希望用它来填充asp.net c#中的树视图.
每个对象项都有:
id | Name | ParentId
Run Code Online (Sandbox Code Playgroud)
例如:
id | Name | ParentId
-------------------------
1 | Alice | 0
2 | Bob | 1
3 | Charlie | 1
4 | David | 2
Run Code Online (Sandbox Code Playgroud)
在上面的例子中,父母将是Alice,有两个孩子Bob和Charlie.大卫是鲍勃的孩子.
我尝试在c#ASP.NET中递归地动态填充树视图时遇到了很多问题
有没有人有一个简单的解决方案?
顺便说一句:您可以使用People.Id,People.Name和People.ParentId来访问成员,因为它是属于list的对象.
到目前为止,我可以发布我的代码(许多尝试),但不确定它会有多大用处.
我正在我的WPF应用程序中创建自定义错误对话框,我想使用标准的Windows错误图标.我可以从WPF获取特定于操作系统的图标吗?如果没有,有没有人知道从哪里得到.pngs的透明度?或者知道在Windows中从哪里提取它们?
到目前为止,我的搜索结果都没有.
我使用bit.ly来缩短我的网址.我的问题 - 参数没有通过.让我解释一下,我使用http://bit.ly/MYiPhoneApps重定向(让我们说)到http://iphone.pp-p.net/default.aspx 现在当我尝试http://bit.ly/MYiPhoneApps? param = xx此param未添加到生成的url中.我知道我可以创建一个额外的"短网址",包括一个参数 - 所以http://bit.ly/WithParam会导致http://www.mysite.com/somepath/apage.aspx?Par1=yy等等.
但我想要的是有一个指向页面的简短URL - 然后我想在这个缩短的URL中添加一个参数 - 当然应该登陆我的页面.
这是bit.ly的缩写(其他人可能会这样做) - 或者"参数转发"不适用于301重定向吗?
曼弗雷德