相关疑难解决方法(0)

如何以常规格式打印日期?

这是我的代码:

import datetime
today = datetime.date.today()
print today
Run Code Online (Sandbox Code Playgroud)

这打印:2008-11-22这正是我想要的但是......我有一个列表我正在追加这个然后突然一切都变得"不稳定".这是代码:

import datetime
mylist = []
today = datetime.date.today()
mylist.append(today)
print mylist
Run Code Online (Sandbox Code Playgroud)

这打印出以下内容:

[datetime.date(2008, 11, 22)]
Run Code Online (Sandbox Code Playgroud)

我怎么能得到像"2008-11-22"这样的简单日期呢?

python datetime date

637
推荐指数
13
解决办法
127万
查看次数

什么是拳击和拆箱以及有什么权衡取舍?

我正在寻找一个清晰,简洁和准确的答案.

理想情况下,作为实际答案,虽然欢迎链接到良好的解释.

language-agnostic boxing unboxing glossary

128
推荐指数
4
解决办法
5万
查看次数

你可以在Python中的核心类型上修补补丁方法吗?

Ruby可以向Number类和其他核心类型添加方法以获得如下效果:

1.should_equal(1)
Run Code Online (Sandbox Code Playgroud)

但似乎Python无法做到这一点.这是真的?如果是这样,为什么?是否与类型无法修改的事实有关?

更新:我不想谈论猴子修补的不同定义,而是只关注上面的例子.我已经得出结论,由于你们中的一些人已经回答,所以无法做到.但我想更详细地解释为什么不能这样做,也许如果Python中有什么功能可以允许这样做.

回答你们中的一些人:我可能想要这样做的原因只是美学/可读性.

 item.price.should_equal(19.99)
Run Code Online (Sandbox Code Playgroud)

这更像是英语,并清楚地表明哪个是测试值,哪个是预期值,如下所示:

should_equal(item.price, 19.99)
Run Code Online (Sandbox Code Playgroud)

这个概念就是Rspec和其他一些Ruby框架所基于的.

ruby python programming-languages fluent-interface monkeypatching

49
推荐指数
6
解决办法
2万
查看次数

在python dict中赋值(copy vs reference)

我理解在python中的每一件事,无论是数字,字符串,字典还是任何东西都是一个对象.变量名只是指向内存中的对象.现在根据这个问题,

>> a_dict = b_dict = c_dict = {}

这将创建一个空字典,并且所有变量都指向此dict对象.因此,改变任何一个都会反映在其他变量中.

>> a_dict["key"] = "value" #say
>> print a_dict
>> print b_dict
>> print c_dict
Run Code Online (Sandbox Code Playgroud)

会给

{'key': value}
{'key': value}
{'key': value}
Run Code Online (Sandbox Code Playgroud)

我已经理解了指向对象的变量的概念,所以这看起来很公平.

现在即使它可能很奇怪,因为它是如此基本的陈述,为什么会发生这种情况?

>> a = b = c = 1
>> a += 1
>> print a, b, c
2, 1, 1   # and not 2, 2, 2
Run Code Online (Sandbox Code Playgroud)

问题的第一部分:为什么这里应用的概念不同?

实际上,当我试图为此寻找解决方案时,出现了这种疑问:

>> a_dict = {}
>> some_var = "old_value"
>> a_dict['key'] = some_var
>> some_var = "new_value" …
Run Code Online (Sandbox Code Playgroud)

python reference

10
推荐指数
2
解决办法
2万
查看次数

Python变得更加面向对象了吗?

我记得有一次,据说Python不像Ruby那样面向对象,因为在Ruby中,一切都是对象.Python也改变了吗?最新的Python是否比以前的版本更面向对象?

ruby python oop

9
推荐指数
3
解决办法
1591
查看次数

Python 中的对象是什么?

我很惊讶之前没有问过我的问题(如上述措辞)。我希望有人可以在像 Python 这样的 OOP 语言的上下文中分解这个基本术语“对象”。以像我这样的初学者能够理解的方式进行解释。

当我在谷歌上输入我的问题时,出现的第一篇文章是在这里找到的

这是定义:使用类的构造函数创建对象。这个对象将被称为类的实例。

维基百科是这样定义的:对象是类的实例。对象是一种抽象。它们既保存数据,又保存数据的方法。数据通常在对象外部不可见。

我希望有人可以帮助我分解这个重要的概念,或者请指点我更多的资源。谢谢!

python oop object

9
推荐指数
2
解决办法
9598
查看次数

在Python中内部理解自我

我完全理解在这个例子中传递的是什么self.我对它如何被传递到self内部非常困惑.有人可以帮我理解吗?

class Cars:

    def __init__(self, model, engine, doors):

        self.model = model
        self.engine = engine
        self.doors = doors

tesla = Cars('Model S', 'Electric', 'Four door')
ford = Cars('Mustang', 'v8', 'Two door')
Run Code Online (Sandbox Code Playgroud)

python oop class self python-3.x

5
推荐指数
1
解决办法
113
查看次数

hasattr on class names

hasattr文档说它需要一个对象和一个属性名称,并让你知道该对象上是否存在该属性.

我发现它似乎也适用于类名(即不是实例对象).

就像是:

class A:
    def Attr1(self):
        pass

> hasattr(A, 'Attr1')
True
> 
Run Code Online (Sandbox Code Playgroud)

我想使用它来使一些测试代码更容易编写,但是如果这是实现的副作用而不是真正想要的话,不希望稍后被咬.

请不要要求查看测试代码,看看我是否可以做其他事情,因为这不是真正的问题.

这有什么官方的python立场吗?我假设在文档中提到的对象是在讨论实例对象.

我尝试使用谷歌搜索(并查看StackOverflow中的一些问题),但似乎没有找到任何东西.

python hasattr

4
推荐指数
1
解决办法
2090
查看次数

在python 3中,当type()返回除类之外的任何东西?

所以我正在浏览copy库的源代码,我发现了这个:

cls = type(x)

copier = _copy_dispatch.get(cls)
if copier:
    return copier(x)

try:
    issc = issubclass(cls, type)
except TypeError: # cls is not a class
    issc = False
Run Code Online (Sandbox Code Playgroud)

重要的是cls = type(x)except TypeError: # cls is not a class.(如果他们帮忙,我会在中间留下一行).该except条款使我相信,有一些x针对type(x)不会再回来一类,但我想不出一个例子,这将是的情况.(我尝试print在条款中添加一个语句,看看我是否可以触发它无效).你能给我一个type()不退还课程的例子吗?

python python-3.x

4
推荐指数
1
解决办法
72
查看次数

参数类型不匹配的适当 Python 错误类型

我正在寻找等价于 PHP 的 InvalidArgumentException 以在函数获取类型不正确的参数时使用。我正在使用 Python 3。(而且我对 Python 很陌生。)

ValueError文档指出“具有正确类型但值不合适的参数”,因此不适用于此处。

TypeError文档指出“在将操作或函数应用于不适当类型的对象时引发”,因此似乎也不适用。

在我的情况下使用的正确错误类型是什么?

python typeerror python-3.x

3
推荐指数
1
解决办法
3230
查看次数