我为什么可以这样说:Python中的不同功能?
print (max('abcdefg'))
print (sorted('akjsdhfjkh'))
但不是这样的:
print(capitalize(cat)
和而这一点:
v='cat'
print (v.capitalize())
我为什么可以这样说:Python中的不同功能?
print (max('abcdefg'))
print (sorted('akjsdhfjkh'))
但不是这样的:
print(capitalize(cat)
和而这一点:
v='cat'
print (v.capitalize())
max
,sorted
都是正规内置函数
In [30]: max
Out[30]: <function max>
哪里capitalize
是str
类
In [31]: str.capitalize
Out[31]: <method 'capitalize' of 'str' objects>
In [32]: str.capitalize("aaa")
Out[32]: 'Aaa'
In [33]: "aaa".capitalize()
Out[33]: 'Aaa
为什么不能正常工作? DEF oneToN(N): 如果n == 1: 返回1 否则: 返回的n + oneToN第(n-1) – paashaas
利用的方法是String对象的一个方法: https://docs.python.org/2/library/string.html#string.capitalize
排序,最大的内置功能: https://docs.python.org/2/library/functions.html
简短的回答:
没有深刻的 - 只是选择的调用约定这些功能。
稍长的答案:
MAX()和排序()是对顺序进行操作功能 - 你给他们一个序列(列表,元组,或字符串),他们返回一个新的。
capitalize()是str对象的一种方法。与其中的许多方法一样,还有一个需要参数的str包方法。因此,如果您愿意,可以这样称呼它:str.capitalize(v)
这里没有逻辑。
你是完全正确的,任何类型的可迭代数据结构(如字符串或列表)应该有一个内置的最大值函数。
即
'abcdefg'.max()
的Python的创造者选择了少量的操作,他们希望被视为内置的:https://docs.python.org/2/library/functions.html
其他大部分功能是特定的类或对象的一部分。
我认为它最大完全合理的一些数学库
即
import math
math.max('abcdefg')
找方法和功能之间的差异不会有一个内置的,而是一直一部分。主要区别在于我们可以独立操作函数,而在方法的情况下我们必须使用它与某个对象。
顺便说一下,你可以做'cat'.capitalize()
。
在Python中,有函数和方法。一个函数可以自己调用。一个方法需要从它的类的一个对象中调用。
假设你有这条巨蟒文件:
def my_print1(): # this is a function
print("cats are nice")
class test():
def my_print2(): # this is a method
print("dogs are nice")
要调用my_print1 功能你只是做my_print1()
,它将打印猫是好的。 但要调用my_print2 方法您需要具有类test
的对象,然后该对象可以调用my_print2方法。你可以在代码中这样做:
myObject = test() # this creates an object of class test
myObject.my_print2() # this calls the method using that object
你看到如何使用一个对象调用my_print2?这就像做v.capitalize()
。 v
这是内置str
(字符串)类的对象,而capitalize
是该类的一种方法,因此它需要从中调用对象(v)。
max
and sorted
是python的内置函数。他们可以不需要对象就可以调用。
Here是python的内置函数。
[方法和函数之间的区别]可能的重复(http://stackoverflow.com/questions/155609/difference-between-a-method-and-a-function) – ozgur