文字是python中的对象?

时间:2012-05-17 08:58:25

标签: python

我来自Java编程,是Python的新手。我应该考虑整数,浮点数和字符串文字作为python编程的对象吗?

例如:24.3'stackoveflow'

4 个答案:

答案 0 :(得分:3)

Everything in python is an object.甚至函数和普通数字/布尔值。

  

Objects 是Python的数据抽象。 Python程序中的所有数据都由对象

表示

这有一些优点,例如,如果您需要具有默认行为但具有其他功能的自定义类型(通常在模板引擎中完成),您可以轻松地对strunicode等类型进行子类化将字符串标记为HTML安全。) 另一个更常见的事情是字符串上的join()方法。虽然大多数语言在数组上都有这样的方法,但Python将它作为一个字符串方法使用,允许你将任何可迭代/序列传递给它:', '.join(some_iterable)

答案 1 :(得分:1)

是的,每个值都是Python中的一个对象。例如:

>>> dir(3)
['__abs__', '__add__', '__and__', '__bool__', '__ceil__', '__class__', '__delattr__', '__divmod__', '__doc__', '__eq__', '__float__', '__floor__', '__floordiv__', '__format__', '__ge__', '__getattribute__', '__getnewargs__', '__gt__', '__hash__', '__index__', '__init__', '__int__', '__invert__', '__le__', '__lshift__', '__lt__', '__mod__', '__mul__', '__ne__', '__neg__', '__new__', '__or__', '__pos__', '__pow__', '__radd__', '__rand__', '__rdivmod__', '__reduce__', '__reduce_ex__', '__repr__', '__rfloordiv__', '__rlshift__', '__rmod__', '__rmul__', '__ror__', '__round__', '__rpow__', '__rrshift__', '__rshift__', '__rsub__', '__rtruediv__', '__rxor__', '__setattr__', '__sizeof__', '__str__', '__sub__', '__subclasshook__', '__truediv__', '__trunc__', '__xor__', 'bit_length', 'conjugate', 'denominator', 'from_bytes', 'imag', 'numerator', 'real', 'to_bytes']
>>> (3).__str__()
'3'

答案 2 :(得分:1)

Every value is an object in Python42"stackoverflow"(1,)都是对象,并且有type

>>> (42).bit_length() # parentheses necessary for syntactic reasons
6
>>> "stackoverflow".upper()
'STACKOVERFLOW'
>>> type((1,))
<type 'tuple'>

答案 3 :(得分:1)

是。事实上,这样做是一些常见习语的核心 - 尤其是字符串格式化:

>>> "Hello {}".format("name")
'Hello name'

并加入序列的项目:

>>> a = ['one', 'two', 'three']
>>> ' + '.join(a)
'one + two + three'

这两个都依赖于字符串文字作为对象,因此能够调用它们上的方法。