在许多地方你可以读到这dynamic_cast意味着"糟糕的设计".但我找不到任何具有适当用法的文章(显示出良好的设计,而不仅仅是"如何使用").
我正在编写一个带有电路板的棋盘游戏和许多不同类型的卡,这些卡具有许多属性(一些卡可以放在板上).所以我决定将其分解为以下类/接口:
class Card {};
class BoardCard : public Card {};
class ActionCard : public Card {};
// Other types of cards - but two are enough
class Deck {
Card* draw_card();
};
class Player {
void add_card(Card* card);
Card const* get_card();
};
class Board {
void put_card(BoardCard const*);
};
Run Code Online (Sandbox Code Playgroud)
有些人建议我只使用一个描述卡片的课程.但我的意思是许多相互排斥的属性.对于Board类' put_card(BoardCard const&)- 它是接口的一部分,我不能把任何卡放在板上.如果我只有一种类型的卡,我将不得不在方法内检查它.
我看到的流程如下:
所以我dynamic_cast在把卡片放在板子上之前使用.我认为在这种情况下使用一些虚拟方法是不可能的(另外我没有任何意义为每张卡添加一些关于板的操作).
所以我的问题是:我的设计是什么?我怎么能避免dynamic_cast?使用某些类型属性和ifs将是一个更好的解决方案......?
PS dynamic_cast在设计环境中处理使用的任何来源都是值得赞赏的.
我可以在输入层后立即使用批量规范化层而不规范化我的数据吗?我希望得到类似的效果/表现吗?
在keras功能中它将是这样的:
x = Input (...)
x = Batchnorm(...)(x)
...
Run Code Online (Sandbox Code Playgroud) artificial-intelligence machine-learning neural-network keras batch-normalization
我有很多泡菜文件。目前我循环阅读它们,但这需要很多时间。我想加快速度,但不知道如何做到这一点。
多处理不起作用,因为为了将数据从子进程传输到主进程数据需要序列化(腌制)和反序列化。
由于 GIL,使用线程也无济于事。
我认为解决方案是一些用 C 编写的库,它需要读取文件列表,然后运行多个线程(没有 GIL)。周围有这样的东西吗?
更新 回答您的问题:
pandas.Series对象,但预先不知道 dtype也许我会从我想要实现的目标开始:我有一个带有必填字段的表单。默认情况下,它不应显示任何错误。如果用户触摸该字段,则应显示错误。所以我的领域或多或少是这样的:
<ion-input .... (ionBlur)="updateDispayedErrors()"></ion-input>
Run Code Online (Sandbox Code Playgroud)
但我不知道如何测试它,因为:
fixture.debugElement.nativeElement.blur()不会触发ionBlur处理程序(与 相同....dispatchEvent(new Event('blur')))(blur)不起作用(即,如果我将代码更改为(blur)="updateDisplayErrors()"那么它不起作用)blur()本机<input .../>元素上的调用方法会起作用,但是......问题是当我运行测试时fixture.debugElement.nativeElement.childNodes是空的......所以本机<input .../>没有被创建如果你想看一个完整的例子来说明它,请告诉我。
我希望 Vim 在搜索后将光标垂直放置在屏幕中间。我已经通过我的以下行实现了 for *、#和n命令:Nvimrc
nmap * *zz
nmap # #zz
nmap n nzz
nmap N Nzz
Run Code Online (Sandbox Code Playgroud)
我的问题是:如何映射/和?同样的方式?换句话说,我想在使用以下命令找到某些文本后以相同的方式定位光标:
/some-text-to-find-forward
?some-text-to-find-backward
Run Code Online (Sandbox Code Playgroud) 我想设置一些调试命令(如import ipdb; ipdb.set_trace()),它将在jupyter中运行调试器(我必须运行HTTP服务器).有人知道这样的事吗?
上下文:我有一个由调度程序处理的长时间运行的任务(不是交互模式).我希望能够以同样的方式运行它来调试这样的任务.
假设我想显示日历。每一天 ( DayViewModel) 都可以具有影响样式的属性:
基于此,我想设计DayContentView如下样式:
此外,最后一个属性(“是否可用”)可以根据用户的操作(单击“检查可用性”按钮)进行更改。
在其他框架中,我会创建一些样式/样式类,并根据这些标志相应地分配它们。但由于StyleClass不可绑定,我不能。我可以吗?也许有一些解决方法。
另一种选择可能是为所有组合创建单独的样式(如果需要,使用继承)。但首先,组合的数量增加了 2^n ,第二个问题是我不知道如何动态更改整个样式以更改其名称的视图。是否可以?
完成我很长的问题:如何正确/以聪明的方式做这件事?我不想在视图模型中存储颜色、字体大小、不透明度等值并手动绑定所有值。
是否可以使用Python 3语法声明输入参数,返回值类型是否可以确定这些类型?与确定函数的参数数量类似?
def foo(name: str) -> int:
....
Run Code Online (Sandbox Code Playgroud)
我想获得str和int分别.