在Python中,如何选择要调用哪个Parent方法?假设我想调用父ASDF2的__init__方法.好像我必须在super()中指定ASDF1 ..?如果我想调用ASDF3 __init__,那么我必须指定ASDF2?
>>> class ASDF(ASDF1, ASDF2, ASDF3):
def __init__(self):
super(ASDF1, self).__init__()
>>> ASDF()
ASDF2's __init__ happened
>>> class ASDF(ASDF1, ASDF2, ASDF3):
def __init__(self):
super(ASDF2, self).__init__()
>>> ASDF()
ASDF3's __init__ happened
Run Code Online (Sandbox Code Playgroud)
对我来说似乎疯了.我究竟做错了什么?
我正在尝试使用XCode并尝试编译其他人的Windows代码.
有这个:
inline GMVariable(const char* a) {
unsigned int len = strlen(a);
char *data = (char*)(malloc(len+13));
if(data==NULL) {
}
// Apparently the first two bytes are the code page (0xfde9 = UTF8)
// and the next two bytes are the number of bytes per character (1).
// But it also works if you just set it to 0, apparently.
// This is little-endian, so the two first bytes actually go last.
*(unsigned int*)(data) = 0x0001fde9;
// This is the reference …Run Code Online (Sandbox Code Playgroud) 我有一个你可以做的事情,engine.setState(<state class>)它将实例化你给它的类类型并开始运行新状态.
在SelectFileState有一个按钮可以转到NewFileState,然后NewFileState有一个按钮可以返回SelectFileState.
现在,在开始时SelectFileState,我正在导入NewFileState(所以我可以在课堂上做engine.setState(NewFileState).在开始时NewFileState,我也在导入SelectFileState(所以我以后可以回去SelectFileState).
但是,这会创建一个循环导入,如其他一些帖子中所述.有人说循环进口是指标设计不好,应该重构.
我知道我可以SelectFileState在我需要使用它之前通过导入来解决这个问题,但我宁愿以正确的方式做事并重构它.
现在我想知道..你怎么重构那个?
谢谢.
编辑: Pydsigner建议我将两个文件合并为一个,因为它们彼此非常相关.但是,我不能将具有循环依赖关系的每个状态放入一个文件中,因此必须有一个更好的方法.有任何想法吗?
2编辑:
我现在通过不使用from x import y语法来绕过这个问题,而只是做import x.这不是一个更好的解决方案,我想知道解决这种事情的"Pythonic"方法.只是将文件合并在一起不能永远修复.
代码:
SelectFileState
from states.state import State
from states.newfilestate import NewFileState
from elements.poster import Poster
from elements.label import Label
from elements.button import Button
from elements.trifader import TriFader
import glob
import os
class SelectFileState(State):
def __init__(self, …Run Code Online (Sandbox Code Playgroud) 我有一个不同块的2D数组,都继承自Block.我想检查我点击的块是否是污垢类型块,如下所示:
clickedblock = getClickedBlock()
if isinstance(clickedblock, Dirt):
place a block
else:
don't place a block
Run Code Online (Sandbox Code Playgroud)
我听说这isinstance很糟糕,应该避免,因为它会在代码中创建分叉.什么时候使用会isinstance很好?
对我的问题另一个更麻烦的解决方案是使用一个名为'id'的Block字段,然后检查它是否等于某个常量,这意味着Dirt.但这听起来很糟糕,而且比错误更容易出错isinstance.
我有 2 个字符。
字符128和字符2。
如何将这些字符转换为640C 中的 Short ?
我试过了
unsigned short getShort(unsigned char* array, int offset)
{
short returnVal;
char* a = slice(array, offset, offset+2);
memcpy(&returnVal, a, 2);
free(a);
return returnVal;
}
Run Code Online (Sandbox Code Playgroud)
但这不起作用,它只是将其显示为128. 什么是首选方法?
如何建立协会有使用外生的新一_many_to_many_关系的两个表之间使用many_to_many功能?
从组织到用户,我有一对多的关系:
organization = Organization.shortcode_changeset(%Organization{}, org_field)
organization = organization |> Repo.insert!
organization |> build_assoc(:users)
Run Code Online (Sandbox Code Playgroud)
这使
%User{__meta__: #ecto.Schema.Metadata<:built, "users">,......}
user = Repo.preload(user, [:organization, :usergroup])
Run Code Online (Sandbox Code Playgroud)
如何在用户和组之间使用many_to_many来完成此操作?
我刚开始尝试将Pydev和Eclipse一起用于一个小项目.
我的问题是,每当我在项目的入口点文件上单击"运行"时,它运行正常.
但是,每当我在不同的文件(不是入口点)时,它就会要求我为该文件创建一个新的运行配置,当我只想让它从入口点开始时.
这样做的方法是什么,因为我在属性中搞砸了一段时间无济于事.
谢谢!
在IDLE中,print(chr(219))(219的块字符)输出"Û".
有没有办法让它输出块字符呢?
这可能实际上是某种计算机范围的问题,因为我似乎无法从任何地方获取块字符,将其从charmap复制到任何文本框中只会导致Û.
找到FreePascal的东西是非常不可能的,因为所有的搜索最终都会出现在某种与Delphi相关的网站上.
是否有内置的Dictionary对象?
这个页面引用了Generic Classes部分下的"TDictionary",但我不知道它可能是什么单元,或者它是否存在.
正如另一个我似乎无法找到的StackOverflow答案所述,这种模式在实际的Prolog代码中经常出现:
pred(X) :-
guard(X),
...
pred(X) :-
\+ guard(X),
...
Run Code Online (Sandbox Code Playgroud)
许多人试图将其浓缩
pred(X) :-
(guard(X) ->
...
;
...).
Run Code Online (Sandbox Code Playgroud)
但是众所周知,箭头结构会破坏选择点并且不符合逻辑.
在Ulrich Neumerkel和Stefan Kral的Indexing dif/2中,if_/3提出了一个单调且合乎逻辑的谓词,然而在论文中他们提到了另一个引起我注意的结构:*->.
该*->构造的功能与上面的unsugared guard子句完全相同,因此它似乎非常适合我的用途,因为我不希望有一个必需的具体条件,if_/3而且我不太关心额外的选择点.如果我没有弄错(编辑:我),它提供了相同的语义,if_/3但没有要求在条件谓词中添加"具体化".
然而,在它的SWI文档中,它声称"这种构造很少使用",这对我来说似乎很奇怪.*->在我看来,它比->你在尝试进行纯逻辑编程时更好.有没有理由避免这种结构,或者是否有更好的替代整个保护条款/否定保护条款模式?
if-statement prolog control-structure implication logical-purity
python ×5
c ×2
ascii ×1
block ×1
dictionary ×1
dynamic ×1
eclipse ×1
ecto ×1
elixir ×1
freepascal ×1
generics ×1
if-statement ×1
implication ×1
instance ×1
int ×1
oop ×1
prolog ×1
pydev ×1
refactoring ×1
short ×1
super ×1
xcode ×1