根据关于ABC的文档,我应该只需要添加一个next方法来进行子类化collections.Iterator.所以,我正在使用以下类:
class DummyClass(collections.Iterator):
def next(self):
return 1
Run Code Online (Sandbox Code Playgroud)
但是,当我尝试实例化它时出现错误:
>>> x = DummyClass()
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
TypeError: Can't instantiate abstract class DummyClass with abstract methods __next__
Run Code Online (Sandbox Code Playgroud)
我猜我做的很蠢,但我无法弄清楚它是什么.任何人都可以对此有所了解吗?我可以添加一个__next__方法,但我的印象只是C类.
我试过执行以下操作:
#!C:\cygwin\bin\bash.exe
ls ${WORKSPACE}
Run Code Online (Sandbox Code Playgroud)
但是,这并没有找到ls(即使它在Windows路径上).有没有办法设置它?
更新:换句话说,我希望能够设置一个使用cygwin bash而不是windows cmd的构建步骤,就像这个页面向您展示如何处理Python一样.
我有一个看起来像这样的mako模板:
% if staff:
<!-- begin staff -->
...
<!-- end staff -->
% endif
Run Code Online (Sandbox Code Playgroud)
这样,如果我将staff变量传递为True,那么这些注释应该出现.我试图通过使用如下所示的正则表达式来测试它:
re.search('<!-- begin staff -->.*<!-- end staff -->', text)
Run Code Online (Sandbox Code Playgroud)
我已经验证了注释出现在HTML输出中,但正则表达式不匹配.我甚至尝试通过re.escape 发表评论(<!-- begin staff -->和<!-- end staff -->),但仍然没有运气.我究竟做错了什么?
或者有更好的方法来运行此测试吗?
我真的不能想出用这句话来表达的最好方法,所以我只想举个例子.假设我有一个像这样创建的表:
CREATE VIEW People
AS
SELECT
id, --int
name, --varchar(20)
birthdate --datetime
FROM SomeTable
Run Code Online (Sandbox Code Playgroud)
如果我想将其从视图更改为物理表,是否有任何方法可以创建具有相同布局的表?
换句话说,我想采取该视图并创建一个这样的表:
CREATE TABLE People(
id int,
name varchar(20),
birtdate datetime
)
Run Code Online (Sandbox Code Playgroud)
...但无需手动编写该查询.
这当然是一个人为的例子.视图有很多具有许多不同数据类型的字段,因此很难手工完成.
跨平台应用程序可以允许文本文件获得的合理最大大小是多少?我知道这是一个过于简单的问题,所以请允许我解释一下.
我的团队正在为客户端实现批量加载接口,以将数据加载到我们的数据库中.它将写出一个CSV文件,然后将该文件加载到相应的数据库中(此时为Oracle或SQL Server).我们可以处理相对较多的记录.
在我开始将它们分成多个文本文件之前,我应该对这些文本文件的大小设置任何限制吗?目前,我们正在部署到Linux和Windows,但我们也有开发人员使用OS X.此外,我们的一些客户有这些操作系统的某些日期版本.我想这取决于我们连接的操作系统,文件系统和RDBMS.我没有尝试为每个平台设置限制,而是为了简单起见,我只想有一个总体限制(只要该限制不过度限制).这甚至是必要的,还是我可以设置一个上限?
我希望这个课程像列表一样.它的数据位于self.data属性中.如果我有一个实例,pp = population,定义__getitem__是什么意思我可以引用pp而不是pp.data?或者它的定义__repr__是什么呢?从列表而不是对象派生这个类会为我提供'pop'.现在我需要实现'pop'方法.谢谢
class population (object):
def __init__ (self):
self.data = []
def append(self, item):
self.data.append(item)
def extend(self, item):
self.data.extend(item)
def sort(self):
self.data.sort(cmp=fitnesscompare)
def __getitem__(self, index): return self.data[index]
def __setitem__(self, index, item): self.data[index] = item
def __len__(self): return len(self.data)
def __repr__(self): return repr(self.data)
def copy(self):
return copy.deepcopy(self)
Run Code Online (Sandbox Code Playgroud) 我有一个SQL*Loader控件文件,其行如下:
FIELDS TERMINATED BY ',' OPTIONALLY ENCLOSED BY '#'
Run Code Online (Sandbox Code Playgroud)
通常情况下,我会使用引号,但如果在多行字符串中使用,这似乎会破坏emacs的python语法突出显示.问题是我们正在加载一个ADDRESS_LINE_2列,其中只有7,000个记录正在加载,因为它们有这样的行:
......(其他专栏),Apt#2,(其他专栏)......
这当然会导致错误.有没有办法逃脱封闭的角色,所以这不会发生?或者我只需要选择一个更好的封闭角色?
我查看了文档,但似乎没有找到答案.
例如,在Python中,我可以创建一个这样的类:
class foo(object):
bar = 'x'
def __init__(self, some_value):
self.some_attr = some_value
Run Code Online (Sandbox Code Playgroud)
...其中bar是类属性,some_attr是实例属性.在Ruby中做这样的事情的惯用方法是什么?
这是运行速度非常慢的查询的tkprof输出(警告:它很长:-)):
SELECT mbr_comment_idn, mbr_crt_dt, mbr_data_source, mbr_dol_bl_rmo_ind, mbr_dxcg_ctl_member, mbr_employment_start_dt, mbr_employment_term_dt, mbr_entity_active, mbr_ethnicity_idn, mbr_general_health_status_code, mbr_hand_dominant_code, mbr_hgt_feet, mbr_hgt_inches, mbr_highest_edu_level, mbr_insd_addr_idn, mbr_insd_alt_id, mbr_insd_name, mbr_insd_ssn_tin, mbr_is_smoker, mbr_is_vip, mbr_lmbr_first_name, mbr_lmbr_last_name, mbr_marital_status_cd, mbr_mbr_birth_dt, mbr_mbr_death_dt, mbr_mbr_expired, mbr_mbr_first_name, mbr_mbr_gender_cd, mbr_mbr_idn, mbr_mbr_ins_type, mbr_mbr_isreadonly, mbr_mbr_last_name, mbr_mbr_middle_name, mbr_mbr_name, mbr_mbr_status_idn, mbr_mpi_id, mbr_preferred_am_pm, mbr_preferred_time, mbr_prv_innetwork, mbr_rep_addr_idn, mbr_rep_name, mbr_rp_mbr_id, mbr_same_mbr_ins, mbr_special_needs_cd, mbr_timezone, mbr_upd_dt, mbr_user_idn, mbr_wgt, mbr_work_status_idn
FROM (SELECT /*+ FIRST_ROWS(1) */ mbr_comment_idn, mbr_crt_dt, mbr_data_source, mbr_dol_bl_rmo_ind, mbr_dxcg_ctl_member, mbr_employment_start_dt, mbr_employment_term_dt, mbr_entity_active, mbr_ethnicity_idn, mbr_general_health_status_code, mbr_hand_dominant_code, mbr_hgt_feet, mbr_hgt_inches, mbr_highest_edu_level, mbr_insd_addr_idn, mbr_insd_alt_id, mbr_insd_name, mbr_insd_ssn_tin, mbr_is_smoker, mbr_is_vip, mbr_lmbr_first_name, mbr_lmbr_last_name, …Run Code Online (Sandbox Code Playgroud) 例如,我想我有一个包含以下文件夹的目录
foo_bar
baz
Run Code Online (Sandbox Code Playgroud)
我想要的是一个bash命令,它将创建一个符号链接foo-bar,foo_bar所以它看起来像这样:
foo-bar
foo_bar
baz
Run Code Online (Sandbox Code Playgroud)
我很确定我可以编写一个Python脚本来执行此操作,但我很好奇是否有办法用bash执行此操作.这是我被困的地方:
ls -1 | grep _ | xargs -I {} ln -s {} `{} | sed 's/_/-/'`
Run Code Online (Sandbox Code Playgroud)
我要做的是运行命令ln -s,第一个参数是目录名,第二个参数是通过的名称sed s/_/-/.还有另一种方法吗?
我们在算法类中讨论了Google的PageRank算法.我们讨论的是该算法将网页表示为图形并将它们放在邻接矩阵中,然后进行一些矩阵调整.
唯一的问题是,在我们讨论的算法中,如果我链接到网页,该网页也被认为链接回我.这似乎使矩阵乘法更简单.这仍然是PageRank的工作方式吗?如果是这样,为什么不是每个人都只是链接到slashdot.com,yahoo.com和microsoft.com只是为了提高他们的网页排名?
我一直认为sys.path默认情况下第一个条目是当前工作目录.但事实证明,在我的系统上,第一个条目是脚本所在的路径.因此,如果我正在执行一个/usr/bin来自的脚本/some/directory,那么第一个条目sys.path是/usr/bin.我的系统上是否配置错误,或者这是预期的行为?
python ×4
bash ×2
oracle ×2
sql ×2
abc ×1
algorithm ×1
bulkinsert ×1
collections ×1
cygwin ×1
filesystems ×1
hudson ×1
idioms ×1
indexing ×1
iterator ×1
mako ×1
oracle10g ×1
pagerank ×1
plsql ×1
pythonpath ×1
regex ×1
ruby ×1
sql-loader ×1
sql-tuning ×1
symlink ×1
sys.path ×1
text-files ×1
unit-testing ×1
view ×1