说我有以下代码:
def func(x, y = 1, z = 2):
""" A comment about this function """
return x + y + z
another_func = partial(func, z = 4)
Run Code Online (Sandbox Code Playgroud)
记录another_func函数的正确或Pythonic方法是什么?
我目前正在开发Web服务,该服务应公开相对大量的交互方式。
例如,客户端可能能够与Web服务进行交互,以管理数据库中的用户或项目。
为此,我创建了以下类:
我的问题如下:
创建两个不同的Web服务(每个都有各自的端点),而不是创建一个同时实现两个服务合同接口的大类,是否有意义?
请记住,实际上,我将拥有更多的服务合同接口来处理不同类型的数据。
据我了解,使用局部类(拆分为多个文件)将使我能够创建一个只有一个端点的大型Web服务。
这样做的缺点是不能将一个大类拆分为多个文件,即:如果开发人员“看不到大图”,则它较难维护,并且更容易出错。
另一种解决方案是为每个服务合同接口实现一个Web服务。
本质上,如果我具有X服务合同接口,那么最终会获得带有X端点的X Web服务。
您会选择哪种解决方案,为什么?
感谢您的输入 !
我想知道,在Ocaml中,是否有部分输入信息.可以通过toplevel/compiler的一些现有功能绘制,对于不编译的程序?让我解释.
在Ocaml中,众所周知,推断类型可以通过-annot文件检索.但是,有时我们有一段代码由于某些输入错误而无法编译.它会将错误导出到此模式的顶层
"This expression has type A, but was expected type B"
Run Code Online (Sandbox Code Playgroud)
一个人为的例子
# let x =
let y = 5 in
not y;;
Characters 32-33:
not y;;
^
Error: This expression has type int
but an expression was expected of type bool
Run Code Online (Sandbox Code Playgroud)
这段代码的程序员应该很好地理解这条消息的第二部分,即"y是期望类型bool",因为"not y"部分.但是,她/他可能有一些困难要理解此错误消息的第一部分:如何推断这个"y"具有类型"int"?因此,在引发类型冲突之前,有一组部分推断类型会很有趣.对于上面的例子,人们希望解释器告诉第一个"y"(来自"let y = 5")是int类型,通过它我将知道第二个"y"(来自"not y")的原因)被推测为int类型.
你能告诉我一些ocaml解释器/编译器是否已经提供了所描述的功能吗?
一般来说,我的问题是:ocaml toplevel或其解释器可以产生用户可以检索的部分推断类型,以便更有效地找到其输入错误的来源吗?
由于部分推断类型注释的非唯一性,此问题可能没有意义.但是,示例示例应该表明至少在某些情况下,某些部分推断类型具有其用法.
谢谢你的想法.
我的问题是.我有一个primefaces对话框(模态窗口).里面有一个命令按钮.当我打开对话框并单击命令按钮时,对话框外部和后面的输入也被验证.我只想处理对话框中的输入.
重要的是说我在我的页面中添加了对话框.该对话框位于其他文件(包含)中.
我尝试使用process ="dialog id"属性但不起作用.
谁能帮我?
可能重复:
为什么要使用部分类?
我是部分课程的新手,想知道是否有人可以给我一个大概的说明为什么我会使用它们以及我在这个过程中会获得什么好处.
我需要做的是,我将我的数据从Windows窗体保存到多个表说5个表.我想在其他地方重用代码.
我已经创建了一个DAL类,现在我如何实现这个部分类来保存数据?
感谢您提前的支持.. :)
我创造了这样的东西:使用起来好吗?
class clsDAL
{
public partial class SaveData
{
public void SpClient()
{
}
}
public partial class SaveData
{
public void SpCountry()
{
}
}
public partial class SaveData
{
public void SpDuration()
{
}
}
public partial class SaveData
{
public void SpProfile()
{
}
}
public partial class SaveData
{
public void SpWorkload()
{
}
}
}
Run Code Online (Sandbox Code Playgroud) 我有一个文件名数组,我需要检查代码,例如
array("120_120_435645.jpg","150_150_312312.jpg","250_250_1232327.jpg");
Run Code Online (Sandbox Code Playgroud)
字符串是"312312"所以它匹配"150_150_312312.jpg",因为它包含该字符串.如果搜索中根本没有匹配项,则将代码标记为缺失.
我试过in_array但是如果它是完全匹配的话,这似乎任何返回都是真的,不知道array_filter是否会这样做...
感谢您的任何建议......也许我一直在盯着它看,咖啡可能有帮助:)
我有一个循环,呈现部分
1000.times do |i|
render partial: 'test', locals: {i: i}
end
Run Code Online (Sandbox Code Playgroud)
对于foreach渲染调用,这非常慢,最长可达0.1 ms,即使部分仅打印出来也是如此 i
my_partial = render_to_method(partial: 'test')
1000.times do |i|
my_partial(locals: {i: i})
end
Run Code Online (Sandbox Code Playgroud)
现在这应该以更快的方式做同样的事情吧?但我不知道该怎么做.
更新:
我试过这样做:
Haml::Engine.new(File.read(File.expand_path File.dirname(FILE)+"/../table/#{column.macro}/_#{column.display_type}.haml"))
.??render(OpenStruct.new({column_value: column_value, object: object}))
Run Code Online (Sandbox Code Playgroud)
两个主要缺点:
更新2:
许多答案试图通过使用其他技术来解决问题.我的真实应用这种技术无法应用.https://github.com/antpaw/bhf/blob/master/app/views/bhf/pages/_platform.haml#L54主要是因为这一行是动态字符串,有时会链接到甚至不存在的部分在gem中并在main_app中定义.我想知道为什么做一些如此基本的事情是如此困难:1.抓住观点.2.渲染它.(3.再次渲染.)
更新3:
@Flash Gordon建议这个https://gist.github.com/antpaw/d6670c23d6f08e35812e#file-gistfile1-haml-L54
template = lookup_context.find_template "#{column.macro}/#{column.display_type}", ['bhf/table'], true
template.render(self, {column_value: column_value, object: object})
Run Code Online (Sandbox Code Playgroud)
它几乎可以解决一些麻烦locals.但它已经感觉就像你抓住模板的部分,渲染部分是完全分开的.
我正在尝试构建一个函数,我可以将其用作我正在映射的RxPy流的处理程序.我所需要的函数需要访问定义该变量的范围之外的变量,对我而言,这意味着我需要使用某种闭包.所以我到达functools.partial来关闭一个变量并返回一个部分函数,我可以作为观察者传递给我的流.
但是,这样做会导致以下结果:
Traceback (most recent call last):
File "retry/example.py", line 46, in <module>
response_stream = message_stream.flat_map(functools.partial(message_handler, context=context))
File "/home/justin/virtualenv/retry/local/lib/python2.7/site-packages/rx/linq/observable/selectmany.py", line 67, in select_many
selector = adapt_call(selector)
File "/home/justin/virtualenv/retry/local/lib/python2.7/site-packages/rx/internal/utils.py", line 37, in adapt_call_1
argnames, varargs, kwargs = getargspec(func)[:3]
File "/usr/lib/python2.7/inspect.py", line 816, in getargspec
raise TypeError('{!r} is not a Python function'.format(func))
TypeError: <method-wrapper '__call__' of functools.partial object at 0x2ce6cb0> is not a Python function
Run Code Online (Sandbox Code Playgroud)
以下是一些重现问题的示例代码:
from __future__ import absolute_import
from rx import Observable, Observer
from pykafka import KafkaClient
from pykafka.common import …Run Code Online (Sandbox Code Playgroud) 我正在尝试通过阅读Joel Grus撰写的" Scratch数据科学 "一书来学习Python ,并且在第94页他们描述了如何使用以下代码逼近f = x ^ 2的导数
def difference_quotient(f, x, h):
return (f(x + h) - f(x)) / h
def square(x):
return x * x
def derivative(x):
return 2 * x
derivative_estimate = partial(difference_quotient, square, h=0.00001)
# plot to show they're basically the same
import matplotlib.pyplot as plt
x = range(-10,10)
plt.title("Actual Derivatives vs. Estimates")
plt.plot(x, map(derivative, x), 'rx', label='Actual')
plt.plot(x, map(derivative_estimate, x), 'b+', label='Estimate')
plt.legend(loc=9)
plt.show()
Run Code Online (Sandbox Code Playgroud)
一切工作正常,但是当我改线derivative_estimate = partial(difference_quotient, square, h=0.00001)到derivative_estimate = …
考虑以下代码:
import functools
import inspect
class Foo:
def foo_fn(self, hello, world):
print(hello, world)
class FooWrapper:
def __init__(self, foo_class):
self._foo = foo_class()
for key, value in inspect.getmembers(self._foo):
if inspect.ismethod(value):
bound_fn = functools.partial(self.foo_wrapper_fn, self, value)
setattr(self._foo, key, bound_fn)
def foo_wrapper_fn(self_wrapper, self_foo, bound_method, hello, world):
bound_method(hello, world)
def make_foo(Foo):
wrapper = FooWrapper(Foo)
return wrapper._foo
a = make_foo(Foo)
a.foo_fn("hello", "world")
Run Code Online (Sandbox Code Playgroud)
foo_wrapper_fn()像这样的功能参数如何排序(self_wrapper, self_foo, bound_method, hello, world)?而不是这样:self_wrapper, bound_fn, self_foo, hello, world,由于self_wrapper和bound_fn首先被部分绑定?
对象()调用返回functool.partial (而不是functool.partialmethod)可以 …