好的我有两个模块,每个模块都包含一个类,问题是它们的类互相引用.
让我们说例如我有一个房间模块和一个包含CRoom和CPerson的人员模块.
CRoom类包含有关房间的信息,以及房间中每个人的CPerson列表.
然而,CPerson类有时需要将CRoom类用于它的房间,例如找到门,或者看看房间里还有谁.
问题是两个模块互相导入我只是得到一个导入错误,其中第二次导入:(
在c ++中,我可以通过仅包含头来解决这个问题,因为在这两种情况下类都只有指向另一个类的指针,前向声明就足以满足标题,例如:
class CPerson;//forward declare
class CRoom
{
std::set<CPerson*> People;
...
Run Code Online (Sandbox Code Playgroud)
反正有没有在python中执行此操作,除了将两个类放在同一个模块或类似的东西?
编辑:添加了使用上面的类显示问题的python示例
错误:
回溯(最近一次调用最后一次):
文件"C:\ Projects\python\test\main.py",第1行,
从房间导入CRoom
文件"C:\ Projects\python\test\room.py",第1行,
来自人员导入CPerson
文件"C:\ Projects\python\test\person.py",第1行,
从房间导入 CRoom
ImportError:无法导入名称
CRoom room.py
from person import CPerson
class CRoom:
def __init__(Self):
Self.People = {}
Self.NextId = 0
def AddPerson(Self, FirstName, SecondName, Gender):
Id = Self.NextId
Self.NextId += 1#
Person = CPerson(FirstName,SecondName,Gender,Id)
Self.People[Id] = Person
return Person
def FindDoorAndLeave(Self, PersonId):
del Self.People[PeopleId]
Run Code Online (Sandbox Code Playgroud)
person.py
from room import CRoom
class CPerson:
def __init__(Self, …Run Code Online (Sandbox Code Playgroud) 我已经更新了php.ini并移动了php_mysql.dll,如步骤6和8中所述.
我收到这个错误......
Fatal error: Call to undefined function mysql_connect() in C:\inetpub...
MySQL没有出现在我的phpinfo中; 报告.
我已经更新了c:\ Windows\php.ini文件
; Directory in which the loadable extensions (modules) reside. extension_dir = "./"
至
; Directory in which the loadable extensions (modules) reside. extension_dir = ".;c:\Windows\System32"
结果:没有变化.
我因此改变了extension_dir 的php.ini值:
extension_dir = "C:\Windows\System32"
结果:phpinfo更多; 报告,但MySQL仍然无法正常工作.
我将文件libmysql.dll从文件夹C:\ php复制到文件夹C:\ Windows\System32和C:\ Windows
结果:没有变化.
我停下来重新启动了IIS.
结果:新的,不同的错误!
Warning: mysql_connect() [function.mysql-connect]: …
DirectSound是Windows的最佳音频抽象层吗?将我的应用程序从非常糟糕的声音实现(针对特定芯片组构建)切换到abstration层.
应用程序是本机Winform,.net 3.5.DirectX/DirectSound是可能的选择,但有点担心开销.还有其他选择吗?或者甚至想到其他任何事情都是愚蠢的?
我有两台vista商务机.我在两者上安装了IE 7.在我的第一台机器(Computer1)上,如果我去这个网站(http://www.quirksmode.org/js/detect.html),它说我在Windows上使用"Explorer 6".如果我将Computer2与Vista Business和IE7一起使用,它说我在Windows上使用"Explorer 7".这里是一个屏幕捕获.两台机器上都有相同版本的IE.有人有解决方案吗?
user-agent windows-vista internet-explorer-7 internet-explorer-6
是否有一个工具(最好是免费的)将Oracle的PL/SQL存储过程语言转换为Postgresql的PL/pgSQL存储过程语言?
对于所有主流浏览器(IE除外),onload由于后退按钮操作,页面加载时不会触发JavaScript 事件 - 它仅在首次加载页面时触发.
有人能指出我解决这个问题的一些示例跨浏览器代码(Firefox,Opera,Safari,IE,...)吗?我很熟悉Firefox的pageshow活动,但不幸的是Opera和Safari都没有实现这一点.
我有一个基本模型,我已经指定了一些字段来验证存在.在控制器的创建动作中我做标准:
@obj = SomeObject.new(params[:some_obj])
if @obj.save
flash[:notice] = "ok"
redirect...
else
flash[:error] = @obj.errors.full_messages.collect { |msg| msg + "<br/>" }
redirect to new form
end
Run Code Online (Sandbox Code Playgroud)
但是,当我重定向到新表单时,错误显示,但字段为空.有没有办法用输入的值重新填充字段,以便可以轻松纠正错误?
因此,如果用户键入mydomain.com/dashboard,则服务器实际发送的文档为/launch.php?i=/dashboard.
一个警告是,我想留下请求
单独,他们应该请求实际的文件夹.
我该如何创建这样的mod_rewrite?
我需要删除Tomcat启动时的临时文件,传递到包含临时文件的文件夹位于applicationContext.xml中.
有没有办法只在Tomcat启动时运行方法/类?
有没有办法关闭这个'功能'?
apache ×1
audio ×1
directsound ×1
directx ×1
java ×1
java-ee ×1
javascript ×1
mod-rewrite ×1
module ×1
mysql ×1
oracle ×1
pageload ×1
php ×1
plpgsql ×1
plsql ×1
postgresql ×1
python ×1
ruby ×1
sql-server ×1
ssms ×1
startup ×1
tomcat ×1
translation ×1
url ×1
user-agent ×1
windows ×1