python3.7 slots 无法将函数绑定到类的实例上?
0

python小白,按廖雪峰的教程学到类的slots时候,无法将类外定义的函数绑定到类的实例
代码:

# -*- coding: utf-8 -*-

class Student(object):
    pass

s = Student()
# s.name = 'Material'
# print(s.name)

def set_age(self, age):
    self.age = age

from  types import MethodType
s.set_age = MethodType(set_age, s)
print(s.age)

报错如下:


$ python slots.py
Traceback (most recent call last):
File "slots.py", line 21, in <module>
print(s.age)
AttributeError: 'Student' object has no attribute 'age'

请问是啥原因呢?3Q
alphanow
最佳答案

因为你没有调用s.set_age。。。

4周前
讨论数量: 2
alphanow

因为你没有调用s.set_age。。。

4周前

  • 请注意单词拼写,以及中英文排版,参考此页
  • 支持 Markdown 格式, **粗体**、~~删除线~~、`单行代码`, 更多语法请见这里 Markdown 语法
  • 支持表情,使用方法请见 Emoji 自动补全来咯,可用的 Emoji 请见 :metal: :point_right: Emoji 列表 :star: :sparkles:
  • 上传图片, 支持拖拽和剪切板黏贴上传, 格式限制 - jpg, png, gif
  • 发布框支持本地存储功能,会在内容变更时保存,「提交」按钮点击时清空
  请勿发布不友善或者负能量的内容。与人为善,比聪明更重要!