我经常使用返回某个类的生成器.我想做的是将生成器类子类化,以便我可以使用适合于生成该类实例的生成器的方法.例如,我想做的一件事就是有一个方法返回一个过滤基础生成器的生成器.
我想做这样的事情:
class Clothes(object):
def __init__(self, generator):
self.generator = generator
def get_red(self):
return (c for c in self.generator if c.color=="red")
def get_hats(self):
return (c for c in self.generator if c.headgear)
Run Code Online (Sandbox Code Playgroud)
我想把衣服当作衣服的集合.我没有对集合进行子类化的原因是我很少想要按原样使用整个服装集合,通常只需要进一步过滤它.但是,我经常需要各种过滤的衣服系列.如果可能的话,我希望Clothes本身就是一个生成器,因为我打算使用它,但是在尝试子类时我遇到了错误types.GeneratorType.
例如:
l = [('a',1),('b',2),('a',2)]
collapsed_l = dict(a=[1,2],b=[2])
Run Code Online (Sandbox Code Playgroud)
怎么最好的l去collapsed_l?
从某种意义上说,我想要某种方式来概括我正在崩溃的"领域"以及哪个领域.我认为这类似于数据库和电子表格中的数据透视表,但我可能错了.
以下是什么问题?:
lss = reduce(list.extend, [[1],[2]], [])
Run Code Online (Sandbox Code Playgroud)
原因:
Traceback (most recent call last):
File "<pyshell#230>", line 1, in <module>
lss = reduce(list.extend, [[1],[2]], [])
TypeError: descriptor 'extend' requires a 'list' object but received a 'NoneType'
Run Code Online (Sandbox Code Playgroud)
我不确定它的NoneType来源.
我有一个庞大的代码库,现在执行的东西太长了.我不知道是什么.
代码永远不会引发异常,它似乎只是继续处理某些东西.
我想做的是在一些函数周围放置计时器来测试哪一个是罪魁祸首.但我不确定这是否是正确的方法,或者如何做到这一点.
我不能轻易地在代码周围的点处引发异常,因为有各种循环调用相同的函数,这可能有时只需要太长时间.
什么是最好的策略?
我在加载的Flash文件和flex中的主应用程序之间有双向绑定.
BindingUtils.bindProperty(this, "micGainValue", audioPublisherApp, "micVolume");
BindingUtils.bindProperty(audioPublisherApp, "micVolume", this, "micGainValue");
micGainValue=75;
Run Code Online (Sandbox Code Playgroud)
但是,micGainValue的设置不会在flash文件中设置micVolume.我改为尝试在200帧之后设置micGainValue,现在它确实设置了micVolume.有没有办法测试这些属性是否绑定,所以设置后的值?
编辑:
flash文件实际上是在改变值.现在的问题是,为什么设置micVolume不会改变micGainValue.
这是我加载的flash文件中的代码:
[Bindable]
public function get micVolume():Number{
if(microphone!=null)
return microphone.gain;
return 0;
}
public function set micVolume(val:Number):void{
if(microphone!=null)
microphone.gain=val;
}
Run Code Online (Sandbox Code Playgroud)
[Bindable]
BindingUtils.bindProperty(this, "micGainValue", audioPublisherApp, "micVolume");
BindingUtils.bindProperty(audioPublisherApp, "micVolume", this, "micGainValue");
micGainValue=75;
Run Code Online (Sandbox Code Playgroud)
我试图覆盖子类的方法,但我认为我需要访问层次结构中较高级别的超类.所以我想做一些像super.super.methodName();
仅供参考,我试图解决的实际问题应该通过以下代码解释:
public class A extends UIComponent{
override protected function keyDownHandler(event:KeyboardEvent):void{
super.keyDownHandler(event);
if(event.keyCode==46)
remove();
}
}
public class B extends A{
override protected function keyDownHandler(event:KeyboardEvent):void{
if(event.keyCode==46 && removeable==true)
remove();
else
super.super.keyDownHandler(event);
}
}
Run Code Online (Sandbox Code Playgroud)
如果我使用类A的KeyDownHandler方法,您将看到remove()被调用.但是,文档声明每当我子类化UIComponent时我都需要调用UIComponent.keyDownHandler.当然这适用于第一个子类,但不适用于子类的子类.
我意识到我可以将所有功能全部放入A中,例如if(这是B){...},但在我看来这似乎是一个黑客.
这似乎是一个错误。我不确定我是否应该担心它。
仅供参考:我刚刚开始使用 Ubuntu (10.04),并希望对它的工作原理有一个核心的了解,这就是为什么我想知道这一切意味着什么。我没有需要解决的具体问题。
我希望这个集合可以是一个集合,也可以是一个字典.问题是:
for element in collection:
print element
Run Code Online (Sandbox Code Playgroud)
如果集合是一个集合,将给我元素,但如果集合是一个字典,则为索引.我想要的是一个迭代dict值的单线程.
那可能吗?
在test_1表中,该my_date字段是"DATE9".格式.
我想将它转换为纯数字格式(数字长度8),这是格式YYYYMMDD.
我还想在proc sql语句中理想地执行此操作.
这是我到目前为止所拥有的.
显然,我需要一些东西来操纵my_date字段.
rsubmit;
proc sql;
CREATE TABLE test_2 AS
SELECT
my_date
FROM
test_1
;
quit;
endrsubmit;
Run Code Online (Sandbox Code Playgroud)
仅供参考:我发现很难理解SAS中的各种方法.
为了澄清,该字段实际上应该是数字,而不是字符字段,也不是日期.
df = pd.DataFrame({a:[1,2], b:[None,3]})
df.dtypes
Run Code Online (Sandbox Code Playgroud)
输出:
a int64
b float64
Run Code Online (Sandbox Code Playgroud)
然后:
df.b.astype(int)
Run Code Online (Sandbox Code Playgroud)
输出:
*** ValueError: Cannot convert NA to integer
Run Code Online (Sandbox Code Playgroud)
一般来说,我希望如果一个数字类型接受NA(例如float64),那么所有人都会接受NA.这背后的原因是什么?
python ×6
python-2.7 ×4
apache-flex ×2
dpkg ×1
generator ×1
linux ×1
list ×1
numpy ×1
pandas ×1
proc-sql ×1
sas ×1
ubuntu ×1
ubuntu-10.04 ×1