首页 > 解决方案 > 是所有方法前面都有一个点(。)还是其中一些。我们如何定义它是否需要一个点?

问题描述

我在使用 Python Crash Course 学习 Python 时遇到了这个字符串和方法的事情:它只说 name in 之后的 dot(.)name.title()告诉 Python 使title()方法作用于变量名。

标签: pythonpython-3.xmethods

解决方案


并非总是如此,您可以动态创建方法:

from types import MethodType

def fn(x):
    return x.var

class A:
    def __init__(self):
        self.var = 20

obj = A()

method_ = MethodType(fn, obj)
print(method_)
print(method_())

输出 :

<bound method fn of <__main__.A object at 0x000001C5E3F01FD0>>
20

方法是一个类型的实例,MethodType它也绑定了一个对象,当方法被调用时,它的第一个参数将始终被该对象填充。这里fn()函数的第一个参数 (x) 将被对象填充obj


推荐阅读