首页 > TAG信息列表 > lazy-evaluation

任务创建开销

我正在读一本书《 Terrell R.-.NET中的并发性》. 有一个不错的代码示例: Lazy<Task<Person>> person = new Lazy<Task<Person>>( async () => { using (var cmd = new SqlCommand(cmdText, conn)) using (var reader = await cmd.ExecuteRead

Python:惰性字符串解码

我正在编写一个解析器,并且有很多文本需要解码,但是我的大多数用户只会关心所有数据中的几个字段.因此,我只想在用户实际使用某些数据时进行解码.这是一个好方法吗? class LazyString(str): def __init__(self, v) : self.value = v def __str__(self) : r

春季有春季懒惰的代理工厂吗?

Wicket将此设备称为惰性代理工厂.鉴于: <property name="foo" ref="beanx"/> 这个想法是自动生成一个代替’beanx’的代理,然后仅在实际调用某个方法时以及何时对其进行初始化. 似乎这可能是Spring的核心功能.在某处吗?解决方法:参见LazyInitTargetSource;那可能会做你想要的.但是,

除非“引起”,否则python float类不会显示在类层次结构中

如果由于某种原因我使用此函数打印出python类层次结构,则“ float”类型不会出现在输出中. def printHier(cls, indent = 0, tab = " "): print "%s%s" % (tab*indent, cls.__name__) try: subclasses = cls.__subclasses__() except TypeError: s

c#是否可以在调用函数后延迟加载函数参数?

我想知道在C#中是否可以在调用函数后延迟加载函数的参数.实际上,我希望仅在使用函数的输出时才加载函数的参数. 我尝试通过以下示例解释我的意思: var a = Enumerable.Range(1, 10); int take = 5; var lazyTake = new Lazy<int>(() => take); //

Python:如何进行延迟调试日志记录

我有一些像这样的python: def foo(): logger = logging.getLogger() # do something here logger.debug('blah blah {}'.format(expensive_func())) foo() 其中expensive_func()是一个返回字符串的函数,执行起来很昂贵. 在开发时,日志级别设置为DEBUG,并且执行expens

python – 词法闭包如何工作?

当我在调查Javascript代码中的词法闭包问题时,我在Python中遇到了这个问题: flist = [] for i in xrange(3): def func(x): return x * i flist.append(func) for f in flist: print f(2) 请注意,此示例谨慎地避免使用lambda.它打印“4 4 4”,这是令人惊讶的.我期待

Lazy Evaluation和Eager Evaluation如何在Java 8中运行

我理解Streams是懒惰的,直到在流上调用终端方法. 我所知道的是,在调用终端方法之后,所有中间方法都按其调用的顺序执行. 但是通过以下程序,我无法理解流是如何工作的.这是代码,我试过了. import java.util.*; import java.util.stream.*; class TestEagerLazy { public stati

c – view :: c_str是否存在view :: split的问题?

特定 auto cstr = "quick brown fox"; 我们有一组适配器只是为了分割单词然后尝试将它们显示为格式化范围. auto adaptors = ranges::view::split(' ') | ranges::view::all; 如果source是string_view,那就是okey. auto sv = std::string_view{cstr}; ranges::copy(sv | adapt

Python懒惰字典评估

Python传播者会说Python没有switch语句的原因是因为它有字典.那么……我怎么能用字典来解决这个问题呢? 问题是所有值都在评估中,并根据输入提出异常. 这只是一个存储数字或数字列表并提供乘法的类的一个愚蠢的例子. class MyClass(object): def __init__(self, value):

python – SQLite是否在WHERE子句中优化具有多个AND条件的查询?

在SQL数据库(我使用Python Sqlite)中,如果我们有100万行查询,如何确保 SELECT * FROM mytable WHERE myfunction(description) < 500 AND column2 < 1000 [-----------------------------] [--------------] high-CP

python – csv数据可以变得懒惰吗?

使用Python的csv模块,是否可以将整个大型csv文件读入惰性列表列表? 我问这个,因为在Clojure中有csv解析模块,它将解析一个大文件并返回一个惰性序列(一系列序列).我只是想知道在Python中是否可行.解决方法:除非我误解你,否则这是默认行为,这是阅读csv文件的本质: import csv def la

执行生成器表达式的最pythonic方法是什么?

越来越多的Python特性变成了“懒惰的可执行文件”,就像生成器一样表达式和其他类型的迭代器.然而,有时候,我发现自己想要推出一个“for”循环,只是为了执行一些动作. 让循环实际执行的最pythonic是什么? 例如: a = open("numbers.txt", "w") (a.write ("%d " % i) for i in xrange(1

热切地评估Python中的布尔表达式

有没有办法(使用eval或其他)来评估python中急切的布尔表达式? 我们来看看: >>> x = 3 >>> 5 < x < y False 哎呀!这非常好,因为无论y的价值如何,这都是假的.问题是,y甚至可以是未定义的,我想得到那个例外.即使事先知道结果,我怎样才能让python评估所有表达式? 希望我清楚自己!谢谢,曼

c# – 是否可以缓存IEnumerable延迟评估结果?

我正在研究一种查找配置文件路径的方法.这需要进行两次传递:首先查找任何现有的配置文件,然后返回并找到第一个可写路径. 虽然我的特殊情况有些过分,但这让我想到:是否可以同时进行懒惰评估并防止多次枚举? 为了说明我的意思,请考虑以下代码: public IEnumerable<string> GetPaths() {

c# – 如何在不实例化不必要的缓存对象的情况下填充MemoryCache?

MemoryCache类公开了一个名为.AddOrGetExisting的方法,它是一种线程安全的方法,如果存在则获取,如果它不存在则添加. 如果缓存的对象尚不存在,则此方法返回NULL.我想我理解这个的价值,因为它向用户提供关于它在缓存中的存在的反馈. 我的缓存解析器看起来像这样: private static T G

python – 我可以对表达式进行惰性求值吗?

我正在尝试定义一个对象master,其属性/方法决定可以使用表达式ex调用,但是该表达式的评估被推迟,直到某个逻辑决定要求它(甚至可能不这样做).所以,在这样的代码中: master.decide(ex) 如果决定中的逻辑如此说明,那么前者应该可以保持不被评估.在代码中,ex代表“我的库的客户端提供

在Java8中模拟Lazy

我编写了以下代码来模拟Lazy< T>在Java中: import java.util.function.Supplier; public class Main { @FunctionalInterface interface Lazy<T> extends Supplier<T> { Supplier<T> init(); public default T get() { return init().g