我在程序上用PHP编程(这是一个单词吗?)大约五年了,并决定尝试一种OOP方法,但遇到了一些概念/设计问题.假设您在程序中有一些模块,每个模块都可以列出,添加,编辑和删除实体.一个实体可以是..不知道,用户,客户,产品等.
你将如何设计类来操纵这些实体?
我想到了两种可能性:
提前致谢,
假设我在Tkinter应用程序中创建了一个画布.
在画布中,我绘制了几个矩形.
我本质上想要的是知道用户点击了哪个矩形,这是我的主要关注点,但这是我尝试过的,我认为可能是解决方案.
这是我的布局:
for x in range(1,6):
for y in range(1,7):
tableNumber = y + 6*(x-1)
w.create_rectangle((table.xSeparation + table.width) * y - table.width,
(table.ySeparation + table.height) * x - table.height,
(table.xSeparation + table.width)*y,
(table.ySeparation + table.height) * x,
fill="brown", tags="table" + str(tableNumber))
w.tag_bind("table" + str(tableNumber), '<Button-1>', do)
Run Code Online (Sandbox Code Playgroud)
所以这只是在行和列布局中创建矩形.
每个矩形都有一个特定的标签,形式为table1,table2to table30.
当我单击矩形时,该do函数执行.
让我们说do就像这样:
def do(event):
print "click"
Run Code Online (Sandbox Code Playgroud)
对于矩形中的每次单击,我都不会在控制台中获得"单击".
我希望能够获得点击矩形的标签,以便能够执行以下操作:
def do(event):
print str(theTagOfTheClickedRectangle)
Run Code Online (Sandbox Code Playgroud)
所以我查看了我可以调用哪些事件:
下面的代码完全符合我想要知道的功能,但有一点需要注意,我想避免必须明确它所需的泛型。
type EventGroup = {
actions: "run" | "save"
other: "bla"
}
export type EventType<T extends keyof EventGroup> = `${T}/${EventGroup[T]}`
const t: EventType<"actions"> = "actions/run"
Run Code Online (Sandbox Code Playgroud)
我希望 Typescript 能够推断出:
`actions/run` -> valid
`actions/save` -> valid
`actions/bla` -> NOT valid
`other/bla` -> valid
Run Code Online (Sandbox Code Playgroud)
这就是这段代码的作用,但具有显式泛型。
javascript generics type-inference typescript typescript-generics
一个非常基本的问题:
当我在.html文档的开头包含DOCTYPE时:
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
Run Code Online (Sandbox Code Playgroud)
它只会破坏页面的一小部分风格.
在这里你可以看到一个实例:
我认为我有点"知道答案",(除了HTML和CSS似乎是由聪明的黑猩猩编写),问题似乎是我使用的CSS的一些元素不属于我正在使用的DOCTYPE的标准,因此,某些部分没有加载(用简单的英文).
这只是我的猜测,但如果是这种情况,我想知道我使用哪些元素,我不应该(如果具体的话)一个"一般指南",如何使用它们.
提前致谢!
嗨,我可以说我有这个数组:
$check_post = array(
$_POST["a_post"],
$_POST["b_post"],
$_POST["c_post"],
$_POST["d_post"],
$_POST["e_post"],
$_POST["f_post"],
$_POST["g_post"],
$_POST["h_post"],
$_POST["i_post"]
);
Run Code Online (Sandbox Code Playgroud)
我想检查这个数组的任何元素是否重复,所以我得到的最好的是:
if (count(array_unique($check_post)) < count($check_post))
echo "Duplicate";
else
echo "NO Duplicate";
Run Code Online (Sandbox Code Playgroud)
哪个工作正常,除了这个事实,如果多一个textarea留空(允许)它给我假.
我想要的是不要考虑数组的空值 (count(array_unique())
BTW我已经试过empty()与array_values($check_post)但我不能绕过它.
提前致谢!!请询问任何必要的澄清.
我有一个3 div,jQuery脚本在单击div时添加一个类:
.red{ background-color: red; }
Run Code Online (Sandbox Code Playgroud)
我想做的是修改jQuery以便一次性.red类添加的下一次就会增加.blue,.red,.blue等...
我的脚本你可以在这个演示中这样:
var $a = $('.box');
$a.click(function(){
$(this).addClass('red');
});
Run Code Online (Sandbox Code Playgroud)
对不起,我不会分享更多,但我的可怕尝试只会让人感到困惑.
我希望我已经说清楚,如果没有请问!
提前致谢!!
更新:
我认为问题不够明确,所以我会尝试进一步解释.
什么需要基本上是三个div,第一次点击,将点击的div变为红色,第二次将点击变成蓝色,红色等等,他们应该切换(当点击第一次点击时变为红色或蓝色是唯一一个重要的)
我试图找到一种方法使以下(示例)代码更优雅:
if answer == "yes" or "Yes" or "Y" or "y" or "why not":
print("yeah")
Run Code Online (Sandbox Code Playgroud)
用同样的方式用英语你不会说:
可能的答案是是或是或否或为什么不是.
你宁愿说:
可能的答案是肯定的,是的,Y或为什么不答案.
这样做更优雅的方式是什么?
提前致谢!!
jQuery:http://trentrichardson.com/examples/timepicker/
用户更改时间后,文本字段显示为20120625 122900.
我想更改20120625122900的格式,日期和时间之间没有空格.
任何人都可以提供一个很好的方式来显示我想要的格式吗?
到现在为止我成功使用了这个选择器:
$('input, textarea')
Run Code Online (Sandbox Code Playgroud)
但问题是这也选择了输入 type=password
$("input[type=text],input:not([type]),textarea")
Run Code Online (Sandbox Code Playgroud)
但其他类型呢?
我想选择没有设置type属性的所有输入password.
我试图使用:not选择器但无法成功使用它.
$("input:not(:password)")
Run Code Online (Sandbox Code Playgroud)
似乎没有工作.
我有一个表格元素,将以电子邮件形式发送。
我希望它在Outlook 2010,Android原生gmail和chrome在chrome上渲染。
我希望表格的宽度为100%,最大为600px。
一种解决方案是使用固定设置,并进行媒体查询。
@media screen and (max-width: 600px) {
table[class="responsive-table"] {
width: 100% !important;
}
}
Run Code Online (Sandbox Code Playgroud)
这在android上的chrome上除gmail以外的所有应用程序均能正常工作,它的宽度为600px并溢出屏幕,破坏了整个布局。
因此,我考虑过进行流畅的布局,将100%放置在桌子上,并为其设置最大宽度,但是现在Outlook不尊重最大宽度,因此它看起来太宽了。
因此,我不能使用Fluid,因为它在Outlook上看起来很糟糕,我不能使用Fixed,因为在chrome上的gmail手机上看起来很糟糕。
有什么办法可以使两者看起来都不错吗?是否有此技巧?