对于Silverlight 2,看起来编程选择是:
这种情况下,本地语言(C#和VB)比DLR语言快一个数量级左右?
当我进行Silverlight客户端编程时,有没有希望在IronPython中"生活",或者我是否应该为处理器密集型工作投入C#?
我对语言的调查来自C#和VB的这组例子以及讨论DLR的这个页面.
我必须执行以下操作,当实例化类时,我需要按用户存储该实例.由于我在asp.net工作,我想知道是否应该使用asp.net提供的一些方法来在用户请求之间保留数据.(缓存不能因为数据需要持久且应用程序状态不能因为它需要特定于用户),或者我应该寻找一种方法将该信息存储在类中.它需要持续存在,直到我以编程方式说出来
这是C#,F#,IronPython和IronRuby集成的后续问题
为了使用Python的C/C++函数,SWIG是最简单的解决方案.反过来也可以使用Python C API,例如,如果我们有一个python函数,如下所示
def add(x,y):
return (x + 10*y)
我们可以在C中提出使用此python的包装器,如下所示.
double Add(double a, double b)
{
PyObject *X, *Y, *pValue, *pArgs;
double res;
pArgs = PyTuple_New(2);
X = Py_BuildValue("d", a);
Y = Py_BuildValue("d", b);
PyTuple_SetItem(pArgs, 0, X);
PyTuple_SetItem(pArgs, 1, Y);
pValue = PyEval_CallObject(pFunc, pArgs);
res = PyFloat_AsDouble(pValue);
Py_DECREF(X);
Py_DECREF(Y);
Py_DECREF(pArgs);
return res;
}
IronPython/C#甚至F#怎么样?
当我喜欢编程时,我使用IronPython控制台,但它做了一些古怪的东西.例如:
If a=("X")
Run Code Online (Sandbox Code Playgroud)
它说"意外的令牌'=.' 或这个:
If a is ("X"):
print ("Y")
else:
print ("Z")
Run Code Online (Sandbox Code Playgroud)
但它应该在那之后结束,它仍然在"......".为什么?
当我尝试使用pickle加载转储文件时,python崩溃了代码CLR20r3 !! 我想知道是否有任何pickle替代品,可以转储python对象并加载回来.第三方库是可以接受的.
我试图创建一个函数来替换给定字符串中的一些值,但我收到以下错误: EOL while scanning single-quoted string.
不确定我做错了什么:
def DataClean(strToclean):
cleanedString = strToclean
cleanedString.strip()
cleanedString= cleanedString.replace("MMMM/", "").replace("/KKKK" ,"").replace("}","").replace(",","").replace("{","")
cleanedString = cleanedString.replace("/TTTT","")
if cleanedString[-1:] == "/":
cleanedString = cleanedString[:-1]
return str(cleanedString)
Run Code Online (Sandbox Code Playgroud) 我知道问题看起来是广泛和主观的,但我对IronPython的这个定义无处不在 - " IronPython是Python编程语言的实现 "如果有任何SO帖子准确回答这个问题,请随意将其标记为重复.
到目前为止,我对此的理解是:
1)Iron python只是用C#编写的托管库(IronPython.dll)并使用CLR
2)Iron python托管代码在内部使用标准Python库(作为Iron Python的一部分安装)来使用DLR弥补差距.
这里的任何python代码的实际执行运行时间是多少?是Python解释器吗?这个解释器是否在不同的进程中运行?
3)IronPython.dll公开api以与任何其他.net语言集成python代码.
我确信某些地方我的理解是不正确的 - " IronPython是Python编程语言的一种实现 "因为从这看起来像Python语言是一种契约,它规定了你如何编写检查条件if condition和实现者如铁python照顾将其转换为IL代码.是这样的吗?
感谢任何帮助或指针.
c# python ironpython dynamic-language-runtime language-design
我对 python 很陌生,所以我创建了一个元素列表,如:
main_list = [1,2,3]
Run Code Online (Sandbox Code Playgroud)
我希望这个列表有一个名字,但我不想使用字典,所以我创建了一个以名字作为属性的类:
class NamedList:
def __init__(self, name, obj)
self.name = name
self.object = obj
Run Code Online (Sandbox Code Playgroud)
当我尝试访问第一个列表的长度时:
len(main_list) #works fine
Run Code Online (Sandbox Code Playgroud)
但对于第二个,它给了我这个
错误:NamedList 实例没有属性“ len ”:
new_main_list = NamedList('numbers', main_list)
len(new_main_list) #This line gives me the error
Run Code Online (Sandbox Code Playgroud)
我想知道为什么 List 类的基本属性对我的类不可用?我所有的实例最初都是一个 List 实例。
提前致谢