我知道有两种方法可以检查方法的参数,并在需要时抛出异常.
1)检查每个参数并在错误时抛出异常:
public void Method(object parameter1, object parameter2)
{
if (parameter1 == null)
{
throw new ArgumentNullException("parameter1");
}
if (parameter2 == null)
{
throw new ArgumentNullException("parameter2");
}
...
}
Run Code Online (Sandbox Code Playgroud)
2)立即检查所有参数并为所有参数抛出相同的异常:
public void Method(object parameter1, object parameter2)
{
if (parameter1 == null || parameter2 == null)
{
throw new ArgumentNullException();
}
...
}
Run Code Online (Sandbox Code Playgroud)
在我看来,第一种方法更好,更清洁,但也涵盖了很多方面.例如,实际执行2行代码的方法 - 以这种方式代码将为每个参数增加4行(包括空行).
我感兴趣的是有经验的程序员使用的方法.有没有比这两个更好的方法?
有时在bash脚本中,我需要生成新的GUID(Global Unique Identifier).
我已经通过一个生成新guid的简单python脚本完成了这个:见这里
#! /usr/bin/env python
import uuid
print str(uuid.uuid1())
Run Code Online (Sandbox Code Playgroud)
但我需要将此脚本复制到我正在处理的任何新系统中.
我的问题是:任何人都可以引入包含类似命令的命令或包吗?
我有一个清单:
d = [23,67,110,25,69,24,102,109]
Run Code Online (Sandbox Code Playgroud)
如何将最近的值与动态间隙分组,并创建这样的元组,最快的方法是什么?:
[(23,24,25),(67,69),(102,109,110)]
Run Code Online (Sandbox Code Playgroud) 我在ubuntu 12.04上安装了tOra(pl/SQL编辑器),打开软件后说:没有连接提供者
我需要将它连接到postgres数据库.
任何的想法?
在一些sqlalchemy教程中,relation函数用于定义sql-relationships.像这样:
class Movie(DeclarativeBase):
__tablename__ = "movies"
movie_id = Column(Integer, primary_key=True)
title = Column(String(100), nullable=False)
description = Column(Text, nullable=True)
genre_id = Column(Integer, ForeignKey('genres.genre_id'))
genre = relation('Genre', backref='movies')
release_date = Column(Date, nullable=True)
class Director(DeclarativeBase):
__tablename__ = "directors"
director_id = Column(Integer, primary_key=True)
title = Column(String(100), nullable=False)
movies = relation(Movie, secondary=movie_directors_table, backref="directors")
Run Code Online (Sandbox Code Playgroud)
但是有些文章提供了这个relationship功能,即:
class Address(Base):
__tablename__ = 'addresses'
id = Column(Integer, primary_key=True)
email_address = Column(String, nullable=False)
user_id = Column(Integer, ForeignKey('users.id'))
user = relationship("User", backref=backref('addresses', order_by=id))
Run Code Online (Sandbox Code Playgroud)
我的问题是:这两个功能之间的区别是什么,至少是使用每个功能的原因.
谢谢你的提前
我有一个简单的c#控制台应用程序,每隔5分钟安排一次.每次调用程序都需要上次运行的输出.
我现在正在做的是使用文本文件并将结果存储在其中.下次运行时,它会打开文本文件并知道上一次运行的输出.
有没有其他方法可以做到不需要任何这样的文本文件?喜欢维护会话变量等?
可能的重复:
Python 中的对数不准确
为什么结果math.log10(x)和math.log(x,10)结果不同?
In [1]: from math import *
In [2]: log10(1000)
Out[2]: 3.0
In [3]: log(1000,10)
Out[3]: 2.9999999999999996
Run Code Online (Sandbox Code Playgroud) 我用一个樱桃应用程序实现了烧杯,但在一些请求之后,烧杯响应时间增加了大约10-14秒.
我认为在缓存中包含500到1000个项目后,烧杯会下降.
所有缓存类型都是简单的(str,int,list,tuple,...)
大多数樱桃开发人员为服务器端表单验证做了什么?我做了一个谷歌,但没有任何事情跳出来作为"一种方式去做".
所以我正在使用paramiko进行一些基本的SSH测试,我没有得到任何输出到stdout.继承我的代码.
import paramiko
client=paramiko.SSHClient()
client.set_missing_host_key_policy(paramiko.AutoAddPolicy())
com="ls ~/desktop"
client.connect('MyIPAddress',MyPortNumber, username='username', password='password')
output=""
stdin, stdout, stderr = client.exec_command(com)
print "ssh succuessful. Closing connection"
client.close()
print "Connection closed"
stdout=stdout.readlines()
print stdout
print com
for line in stdout:
output=output+line
if output!="":
print output
else:
print "There was no output for this command"
Run Code Online (Sandbox Code Playgroud)
所以每当我运行它时,执行该命令(如果我执行类似cp的操作,文件被复制),但我总是得到"此命令没有输出".当打印stdout = stdout.readlines()时,[]是输出.另外,如果我在for循环中添加一个print语句,它就永远不会运行.有人可以帮帮我吗?谢谢!
python ×6
c# ×2
cherrypy ×2
math ×2
validation ×2
.net ×1
beaker ×1
connection ×1
decorator ×1
grouping ×1
guid ×1
ieee-754 ×1
linux ×1
list ×1
parameters ×1
paramiko ×1
postgresql ×1
qt4 ×1
sqlalchemy ×1
stateful ×1
tora ×1
ubuntu ×1
web ×1