如果我这样做:
>>> False in [False, True]
True
Run Code Online (Sandbox Code Playgroud)
那回来了True.只是因为False在列表中.
但如果我这样做:
>>> not(True) in [False, True]
False
Run Code Online (Sandbox Code Playgroud)
那回来了False.而not(True)等于False:
>>> not(True)
False
Run Code Online (Sandbox Code Playgroud)
为什么?
这应该更容易...
我想在我的代码中为XML文档添加"编码"换行符
/// <summary>
/// Get a human-readable variant of the SQL WHERE statement of the search element. <br/>
/// Rather than return SQL, this method returns a string with icon-tokens, which
/// could be used to represent the search in a condensed pictogram format.
/// </summary>
Run Code Online (Sandbox Code Playgroud)
如您所见,我找到了一些答案,证明添加了<和>括号.有趣的是,好的'ol <br />换行符不会在Intellisense弹出窗口中创建换行符.
我发现这很烦人......
有什么建议?
假设我去编译一些编写不佳的C ++源代码,这些源代码会调用未定义的行为,因此(正如他们所说)“任何事情都可能发生”。
从C ++语言规范在“合格”编译器中认为可接受的角度来看,这种情况下的“任何情况”是否包括编译器崩溃(或窃取我的密码,或者在编译时出现异常或错误),或者未定义行为的范围专门限于生成的可执行文件运行时会发生什么?
我问这个问题是因为对这个答案的评论主题进行了讨论.我90%的方式来绕过它.
In [1]: class A(object): # class named 'A'
...: def f1(self): pass
...:
In [2]: a = A() # an instance
Run Code Online (Sandbox Code Playgroud)
f1 存在三种不同的形式:
In [3]: a.f1 # a bound method
Out[3]: <bound method a.f1 of <__main__.A object at 0x039BE870>>
In [4]: A.f1 # an unbound method
Out[4]: <unbound method A.f1>
In [5]: a.__dict__['f1'] # doesn't exist
KeyError: 'f1'
In [6]: A.__dict__['f1'] # a function
Out[6]: <function __main__.f1>
Run Code Online (Sandbox Code Playgroud)
绑定方法,未绑定方法和函数对象之间的区别是什么,所有这些都由f1描述?如何调用这三个对象?他们怎么能相互转化?关于这些东西的文档很难理解.
当你编写稍微复杂的函数时,我注意到它$被大量使用但我不知道它的作用是什么?
我是用插科打诨fix和乱搞它后,我遇到了一些怪异的行为来,即0 * undefined是*** Exception: Prelude.undefined和undefined * 0是0.这也意味着,fix (0 *)是*** Exception: <<loop>>和fix (* 0)是0.
在玩它之后,似乎原因是因为在两个方向上使它短路是非常重要的,因为这没有多大意义,没有某种奇怪的并行计算并从第一个非开始底部回来了.
这种事情在其他地方是否可见(反身函数对底值不反身),是否可以安全依赖?也有做出既切实可行的办法(0 *)和(* 0)评估,无论传入的值为零.
我一直在玩Cofree,并且不能完全理解它.
例如,我想Cofree [] Num在ghci中玩,并且不能得到任何有趣的例子.
例如,如果我构造一个Cofree类型:
let a = 1 :< [2, 3]
Run Code Online (Sandbox Code Playgroud)
我希望extract a == 1,但我得到这个错误:
No instance for (Num (Cofree [] a0)) arising from a use of ‘it’
In the first argument of ‘print’, namely ‘it’
In a stmt of an interactive GHCi command: print it
Run Code Online (Sandbox Code Playgroud)
还有一种:
extract a :: (Num a, Num (Cofree [] a)) => a
Run Code Online (Sandbox Code Playgroud)
我可以得到一些简单的例子,甚至是琐碎的,如何使用Cofree有,比方说,函子:[],或者Maybe,或者Either,演示
extractextendunwrapduplicate?Cross发布:https: …
我正在努力更深入地了解lens库,因此我会使用它提供的类型.我已经有了一些镜片经验,并且知道它们有多么强大和方便.所以我转向棱镜,我有点迷失了.似乎棱镜允许两件事:
第一点看起来很有用,但通常一个不需要来自实体的所有数据,并且^?使用普通镜头可以获得所讨论Nothing的字段不属于实体所代表的分支,就像使用棱镜一样.
第二点......我不知道,可能有用吗?
所以问题是:我可以用棱镜做些什么我不能用其他光学器件?
编辑:谢谢大家的优秀答案和进一步阅读的链接!我希望我能接受他们.
我试图通过telnet连接到实验室仪器.我想Telnet从telnetlib标准库中的模块扩展类,以包含特定于我们仪器的函数:
import telnetlib
class Instrument(telnetlib.Telnet):
def __init__(self, host=None, port=0, timeout=5):
super(Instrument,self).__init__(host, port, timeout)
Run Code Online (Sandbox Code Playgroud)
我在这段代码中尝试做的就是__init__从父类(telnetlib.Telnet)继承方法并传递标准参数,所以我可以在__init__以后添加内容.这个公式在其他场合对我有用; 这次它super()在我尝试实例化时在语句中给出了一个错误:
TypeError: must be type, not classobj
Run Code Online (Sandbox Code Playgroud)
我查看了telnetlib的源代码,Telnet似乎是一个旧式类(它不会继承object) - 我想知道这是否可能是我的问题的根源?如果是这样,怎么可以克服?我已经看到了一些代码示例,其中派生类从超类继承object,虽然我不完全确定这是否是对我的同一问题的响应.
披露:我一直在使用也尝试telnetlib.Telnet代替super(),并from telnetlib import Telnet用Telnet到位的super().在这些情况下问题仍然存在.
谢谢!
haskell ×4
python ×4
.net ×1
arrays ×1
c# ×1
c++ ×1
comonad ×1
dollar-sign ×1
free-monad ×1
function ×1
haskell-lens ×1
inheritance ×1
methods ×1
monads ×1
numpy ×1
oop ×1
operators ×1
python-2.7 ×1
python-3.x ×1
syntax ×1
telnet ×1