我想按列找到矩阵中值的argmax,例如:
1 2 3 2 3 3
4 5 6 ->
3 7 8
Run Code Online (Sandbox Code Playgroud)
我觉得我应该能够在列上映射argmax/posmax函数,但我没有看到在Octave中执行此操作的特别直观的方法.
目前,我有以下代码......
file_name = content.split('=')[1].replace('"', '') #file, gotten previously
fileName = "/" + self.feed + "/" + self.address + "/" + file_name #add folders
output = open(file_name, 'wb')
output.write(url.read())
output.close()
Run Code Online (Sandbox Code Playgroud)
我的目标是让python将文件(在file_name下)写入当前目录(IE中保存python脚本的IE)的"address"文件夹中的文件中.
我查看了os模块,但我不想更改当前目录,这些目录尚不存在.
首先,我知道__init__()Python中的类函数不能返回值,所以遗憾的是这个选项不可用.
由于我的代码结构__init__,在类的函数内部进行数据断言(以及提示用户提供信息)是有意义的.但是,这意味着对象的创建可能会失败,我希望能够从此优雅地恢复.
我想知道继续这个的最好方法是什么.我已经考虑将全局布尔值设置为"有效构造"标志,但我不想这样做.
任何其他的想法(除了重组,所以断言可以在初始化之外发生,值作为参数传递)?我基本上是在寻找一种方法,在成功时返回0并在初始化期间返回-1.(像大多数C系统调用一样)
我想知道我正在做的是一种适当的断言方法.我正在尝试为Python的样式指南制作简洁且非常正确的内容.
try:
assert self.port_number == 0
assert self.handle == None
assert isinstance(port_number, int) or isinstance(port_number, float)
assert port_number > 0
except AssertionError:
return -1
*body of code*
return 0
Run Code Online (Sandbox Code Playgroud)
上面是我的代码的摘录,显示了我如何处理参数断言.你可以假设我已经涵盖了所有必要的断言,输入是port_number.这被认为是好风格吗?有没有更好的办法?
在PEP-616中,规范removeprefix()包括以下代码块:
def removeprefix(self: str, prefix: str, /) -> str:
if self.startswith(prefix):
return self[len(prefix):]
else:
return self[:]
Run Code Online (Sandbox Code Playgroud)
为什么最后一行说return self[:], 而不是 just return self?
最近我一直在问几个关于Python中更专业和pythonic风格的问题,尽管我的问题给出了很好的答案,但我觉得我需要提出一个更广泛的问题.
通常,当编写实用函数(对于库等)处理更多副作用(文件写入,字典定义等)而不是返回值时,返回状态代码以告诉调用函数它是非常有用的通过或失败.
在Python中,似乎有三种标记方式:
使用返回值-1或0(C like)并使用诸如的语句
if my_function(args) < 0:
fail condition
pass condition
Run Code Online (Sandbox Code Playgroud)
或使用返回值True/False
if not my_function(args):
fail condition
pass condition
Run Code Online (Sandbox Code Playgroud)
或使用'return或'return None'使用异常(退出未知错误)
try:
my_function(args)
except ExpectedOrKnownExceptionOrError:
fail condition
pass condition
Run Code Online (Sandbox Code Playgroud)
哪个最好?最正确的?首选?我理解所有的工作,并且没有太多的技术优势(除了可能是异常处理的开销).
所以我的 Django 模型如下所示:
class Test(models.Model):
cool_prop = models.CharField()
class Metadata(models.Model):
key = models.CharField()
value = models.CharField()
test = models.ForeignKey(Test)
Run Code Online (Sandbox Code Playgroud)
我希望能够根据测试是否包含基于此元数据的键:值对来过滤测试。本质上,我希望能够做到:
tests = Test.objects.all().filter(metadata__key=key and metadata__value=value)
Run Code Online (Sandbox Code Playgroud)
但我不确定如何在 Django 中执行此操作。我研究过 F 和 Q 语句。似乎大多数 Django 操作都允许任何具有所述键的任何元数据和具有所述值的任何元数据的测试。但我需要测试其中 1 个元数据的键和值都匹配。