我正在创建一个网站,但是为了进一步提高我的编码技能,我正在尝试利用 OOP 的力量来完成它。
我正在使用类来验证表单输入,所以我想我会有一个“父”验证类,然后是每个提交的表单的子类(即登录类、注册类等),它将负责将正确的值放入数据库等
我见过的代码有从孩子的构造函数构造父。但是,我没有这样做,但我的课程似乎仍然有效?
有人可以向我解释为什么我们从孩子那里调用父构造函数吗?另外,我的代码是否只工作是因为我在我的父母中有“公共”功能(方法)?(这可能是一个问题)?
我的代码(为清楚起见的删节版)如下:
class Validation_Class
{
public function __construct()
{
// constructor not needed
}
public function is_genuine_email_address($email) {
// code to validate email are genuine here...
}
}
Run Code Online (Sandbox Code Playgroud)
我的孩子班看起来像...
class Login_Class extends Validation_Class
{
public function __construct()
{
// I don't call parent::__construct() from here
// should I be doing?
// I can still access parent methods with $this->is_genuine_email_address
}
}
Run Code Online (Sandbox Code Playgroud)
我的 Validation_Class 中的所有函数(方法)都是“public”的,当我实例化我的子类时,我可以使用以下命令调用任何 Validation Class 方法:
$className = "Login_Class";
$thisClass = new $className();
Run Code Online (Sandbox Code Playgroud) 如果我将数据存储在列表中,例如
images = ['pdf-one','gif-two','jpg-three']
Run Code Online (Sandbox Code Playgroud)
如何在连字符处将这些元素拆分为多个元素 - 而不是子列表.即
images = ['pdf','-one','gif','-two','jpg','-three']
Run Code Online (Sandbox Code Playgroud)
不
images = [['pdf','-one'],['gif','-two'],['jpg','-three']]
Run Code Online (Sandbox Code Playgroud) 我正在尝试使用jQuery Cookie设置cookie,以便为新访问者显示警报,当您单击"关闭"按钮时,它将设置cookie并阻止警报div显示.我还想让cookie在24小时后过期.
我已经玩了一些代码并让它工作,但是,我现在的方式,默认显示警报div,只有在你点击关闭时才隐藏.这很好,但是当cookie存在时,警报会在隐藏之前显示一瞬间.
我如何修改以下代码,以便我可以默认隐藏div,如果cookie不存在则会显示,但如果他们点击关闭按钮,它将生成一个cookie并隐藏警报24小时?
if ($.cookie('alert')) $('.alert-box').hide();
else {
$(".close").click(function() {
$( ".alert-box" ).slideUp( "slow", function() { });
$.cookie('alert', true);
});
}
Run Code Online (Sandbox Code Playgroud) 我有一个NODE.JS Express服务器,它可以将JSON的大块分解成较小的部分,并通过URL将请求路由到移动设备和我正在创建的各种其他应用程序。
我刚刚从测试数据转移到实时数据,但是我发现NODE.JS不是使用最新版本的JSON,而是缓存和重用服务器运行时就位的JSON。
这是(部分)代码
var express = require('express'),
http = require('http');
forever = require('forever');
var ppm = require('./data/ppm.json');
var stations= require('./data/stations.json');
var fgwstations= require('./data/fgwstations.json');
var app = express()
.use(express.bodyParser())
.use(express.static('public'));
app.all('/', function(req, res, next) {
res.header("Access-Control-Allow-Origin", "*");
res.header("Access-Control-Allow-Headers", "X-Requested-With");
next();
});
app.get('/ppm/all', function (req, res) {
res.json(ppm);
});
app.get('/*', function (req, res) {
res.json(404, {status: 'datafeed not found please refer to documentation'});
});
http.createServer(app).listen(3000, function () {
console.log("Data Server ready at http://localhost:3000");
});
Run Code Online (Sandbox Code Playgroud)
代码中可能有错别字,因为我刚刚撕掉了很多块,因为适当的炮弹相当长,而且很多。我使用FOREVER函数使该服务器永久运行,因此它将在不打开shell命令的情况下运行
现在,我怀疑我可以执行某种fs.filewatch类型的函数,该函数将在每次更新JSON文件时重新启动服务器,但是重新启动服务器似乎有点麻烦,特别是当此数据每2-3分钟及以后更新一次时甚至更快。在重新启动过程中,仅需一个人执行请求或一个应用程序就请求数据即可引起问题。
有没有一种方法可以“重新读取”分配给var ppm的JSON文件(其他文件是静态的),还是重启服务器的唯一方法?
任何有关如何读取该文件并执行此操作的好主意将不胜感激,因为我相信有人会以一种更有效的方式进行操作。
当前的开发服务器是开源的(很多WIP),可以随时查看其功能
http://54.194.148.89:3000
Run Code Online (Sandbox Code Playgroud) 我测量了对1000万条目列表进行排序所需的时间:
import time
a = range(10000000, 0, -1)
b = range(10000000, 0, -1)
start = time.time()
a.sort()
end = time.time()
print end - start
start = time.time()
sorted(b)
end = time.time()
print end - start
Run Code Online (Sandbox Code Playgroud)
我得到的输出:
0.272000074387
0.468999862671
Run Code Online (Sandbox Code Playgroud)
原因可能是因为sorted它更通用,但这与这篇帖子不一致,
差异在大型列表中变得微不足道.造成巨大差异的原因是什么?
我在32位Windows 7,Q6600处理器上使用python 2.7.3 32位.
我在学术论文中被问过这个问题.请让我知道答案?
arrayFind(x, A)
i =0 ;
while( i < n ) {
if(x==A[i])
return i;
else
i = i+1;
}
return –1;
Run Code Online (Sandbox Code Playgroud)
假设我们有一个算法,在二维
数组中find2D( )找到一个元素.该算法遍历各行,并在每一行上调用算法,直到找到或已搜索到所有行.xn x nAfind2D( )AarrayFind()xA
这种算法的最坏运行时间是多少?
一个.如果每行中的元素都已排序?
湾 如果每行中的元素没有排序?
我想使用hashCode()String对象的java标准函数"实现"从Strings到short的哈希函数.我想出了以下简单的实现:
static short shortHashCode(String str)
{
int strHashCode = str.hashCode();
short shorterHashCode = (short) (strHashCode % Short.MAX_VALUE);
return shorterHashCode;
}
Run Code Online (Sandbox Code Playgroud)
shortHashCode函数是一个很好的哈希函数吗?意思是碰撞的机会很小(两个不同的字符串有相同的哈希码接近1/Short.MAX_VALUE的可能性)?lowerKey()Java 实现中操作的时间复杂度是TreeMap多少?
我认为它是 log(n) 但我在文档中的任何地方都找不到它。
更基本操作的复杂性有据可查:
此实现为 containsKey、get、put 和 remove 操作提供有保证的 log(n) 时间成本。
顺便说一句:我也对subMap(). 我猜 log(n) 复杂度lowerKey()将允许 log(n) 时间为常数 size subMap()。
我尝试了以下代码:
struct Base {
Base(int a) {}
};
struct Derived : Base {
using Base::Base; // Inherit Base's constructors.
};
int _tmain(int argc, _TCHAR* argv[])
{
Derived d(1);
}
Run Code Online (Sandbox Code Playgroud)
这不编译,我得到:
error C2664: 'Derived::Derived(const Derived &)' : cannot convert argument 1 from 'int' to 'const Derived &'
Run Code Online (Sandbox Code Playgroud)
(无法找到相关的构造函数,它尝试调用默认的复制构造函数)
如何修复继承以便Derived d(1);编译?