基本上,我有一个模型,我创建了一个许多其他类共享的超类,然后每个类都有一些彼此不同的独特功能.假设A类是超类,B,C和D类是该类的子类.
B类和C类都可以有D类的多个,但是我已经看到最好将外键关系放在D类中,然后引用它的父类.现在在其他语言中,我可以简单地说它与A类有一个ForeignKey关系,然后语言识别类的真实类型.但是,我不认为它是如何与Python一起工作的.
追求这个问题的最佳推荐方法是什么?
编辑:这大致是我的意思......
class A(models.Model):
field = models.TextField()
class B(A):
other = <class specific functionality>
class C(A):
other2 = <different functionality>
class D(A):
#I would like class D to have a foreign key to either B or C, but not both.
Run Code Online (Sandbox Code Playgroud)
基本上,B类和C类都有多个D类.但是特定的D类只属于其中一个.
我希望非.NET应用程序访问内存映射文件,但是这个应用程序不知道内存映射文件的存在,所以我需要文件路径.有可能的?
好的,所以我知道它from-import与"完全"相同import,除了它显然不是因为命名空间的填充方式不同.
我的问题主要是因为我有一个utils模块,它有一个或两个函数,我的应用程序中的每个其他模块使用,我正在努力合并标准库logging模块,据我所知,我需要做的像这样的排序:
import logging
logging.basicConfig(filename="/var/log") # I want file logging
baselogger = logging.getLogger("mine")
#do some customizations to baselogger
Run Code Online (Sandbox Code Playgroud)
然后在不同的模块中使用它我会再次导入日志记录:
import logging
logger = logging.getlogger("mine")
# log stuff
Run Code Online (Sandbox Code Playgroud)
但我想知道的是,如果我做了一个from utils import awesome_func遗嘱我的记录器肯定会被设置,记录模块是否会按照我想要的方式设置?
这也适用于其他通用设置.
我想看看一个对象是否是C#中的内置数据类型
如果可能的话,我不想检查所有这些.
也就是说,我不希望这样做:
Object foo = 3;
Type type_of_foo = foo.GetType();
if (type_of_foo == typeof(string))
{
...
}
else if (type_of_foo == typeof(int))
{
...
}
...
Run Code Online (Sandbox Code Playgroud)
更新
我试图递归创建一个PropertyDescriptorCollection,其中PropertyDescriptor类型可能不是内置值.所以我想做这样的事情(注意:这还不行,但我正在努力):
public override PropertyDescriptorCollection GetProperties(Attribute[] attributes)
{
PropertyDescriptorCollection cols = base.GetProperties(attributes);
List<PropertyDescriptor> list_of_properties_desc = CreatePDList(cols);
return new PropertyDescriptorCollection(list_of_properties_desc.ToArray());
}
private List<PropertyDescriptor> CreatePDList(PropertyDescriptorCollection dpCollection)
{
List<PropertyDescriptor> list_of_properties_desc = new List<PropertyDescriptor>();
foreach (PropertyDescriptor pd in dpCollection)
{
if (IsBulitin(pd.PropertyType))
{
list_of_properties_desc.Add(pd);
}
else
{
list_of_properties_desc.AddRange(CreatePDList(pd.GetChildProperties()));
}
}
return list_of_properties_desc;
}
// …Run Code Online (Sandbox Code Playgroud) 在*nix中,许多接受文件名作为参数的命令行应用程序也接受管道.例:
anApplication file.txt
Run Code Online (Sandbox Code Playgroud)
也适用
anApplication | anotherApplication arguments
Run Code Online (Sandbox Code Playgroud)
并且"anotherApplication"的结果被重定向到"anApplication",因为它是一个文件
我了解到相当于Windows的Windows是"命名管道".我想知道命令行应用程序是否必须知道命名管道才能理解它,或者接受文件作为参数的任何命令行应用程序是否可以使用命名管道.
例:
regular_string = "%s %s" % ("foo", "bar")
result = {}
result["somekey"] = regular_string,
print result["somekey"]
# ('foo bar',)
Run Code Online (Sandbox Code Playgroud)
为什么result["somekey"]元组现在不是字符串?
所以我有一个std :: set,它需要保持特定的顺序以及不允许用户定义(由我)类型的重复.现在我可以通过重载我的类型中的'<'运算符来使订单正常工作.但是,该集合没有适当地检测重复,并且说实话,我不完全确定它是如何在内部执行的.我已经重载'=='运算符,但不知何故我不确定这是该集实际使用的是什么?所以问题是当你添加值时,集合如何确定重复?这是相关代码:
用户定义的类型:
//! An element used in the route calculation.
struct RouteElem {
int shortestToHere; // Shortest distance from the start.
int heuristic; // The heuristic estimate to the goal.
Coordinate position;
bool operator<( const RouteElem& other ) const
{
return (heuristic+shortestToHere) < (other.heuristic+other.shortestToHere);
}
bool operator==( const RouteElem& other ) const
{
return (position.x == other.position.x && position.y == other.position.y);
}
};
Run Code Online (Sandbox Code Playgroud)
因此,当元素的位置相等时,元素是等价的,如果元素的组合函数小于另一元素,则元素小于另一元素.排序工作,但该集将接受相同位置的两个元素.
C++编译器能否产生不太好的二进制文件?您可以在这里考虑输出的稳健性和性能.是否有"最佳"C++编译器这样的东西?如果没有,那么着名的编译器(g ++,英特尔C++编译器,Visual C++等)的优点是什么,当然还有不那么强大(已知的错误和问题)点.
当编译器产生错误输出导致任务关键型软件失败时,是否存在文档记录?
我们
我想知道如何在许多托管公司拥有的域名可用性搜索的基础上进行构建.
我已经环顾四周并发现了一个关于它的问题,但是那个问过它的人使用了一个类来完成这项工作,而且他没有发布代码或引用任何来源.
有人可以帮我找一个如何为我正在构建的网站构建一个,当然使用PHP.
谢谢.