python - 是所有方法前面都有一个点(。)还是其中一些。我们如何定义它是否需要一个点?
问题描述
我在使用 Python Crash Course 学习 Python 时遇到了这个字符串和方法的事情:它只说 name in 之后的 dot(.)name.title()
告诉 Python 使title()
方法作用于变量名。
解决方案
并非总是如此,您可以动态创建方法:
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
。
推荐阅读
- linux - laravel ftp 适用于 windows 但不适用于 linux
- wordpress - 部落事件:如何建立“月栏”
- sql - 在 Gorm/Grails 的 JOIN 子句中使用 DetachedCriteria
- ms-access - 表单开始时的动态月份过滤器
- html - 在 URL 中传递用户名和密码不起作用
- webpack - 让 webpack 为未知的导入抛出错误而不是警告
- java - 连接两个类
- r - 使用多列键调用 data.table 上的一行
- r - h20.init(external ip) throws error: Can only start H2O launcher if IP address is localhost
- imagemagick - 如何在 Magick++ 中禁用内存限制