Tvally 2022-01-11 17:42 采纳率: 64.7%
浏览 16
已结题

类不可以直接打属性吗

问题遇到的现象和发生背景python idle
问题相关代码,请勿粘贴截图

class User():
def init(self, first_name, last_name, others):
self.first_name = first_name
self.last_name = last_name
self.others = others
self.login_attempts = 0

def describe_user(self):
    print("This is the basic information: "
          + self.first_name)

def greet_user(self):
    print("Hello, " + self.first_name + self.last_name +
          "\nyour information is " + self.others)

def increment_login_attempts(self):
    self.login_attempts += 1
    return self.login_attempts

def reset_login_attempts(self):
    self.login_attempts = 0

U1 = User('Liu', 'Bw','eerdos')

print("Now, the number is " + str(U1.increment_login_attempts()))

U1.increment_login_attempts()
print(self.login_attempts)

运行结果及报错内容 显示最后一句print里的内容self没有定义
我的解答思路和尝试过的方法 为什么不能直接打属性呢
我想要达到的结果
  • 写回答

1条回答 默认 最新

  • 禾糖月色 2022-01-11 18:01
    关注
    class User(object):
        def __init__(self, first_name, last_name, others):
            self.first_name = first_name
            self.last_name = last_name
            self.others = others
            self.login_attempts = 0
    
        def describe_user(self):
            print("This is the basic information: "
                  + self.first_name)
    
        def greet_user(self):
            print("Hello, " + self.first_name + self.last_name +
                  "\nyour information is " + self.others)
    
        def increment_login_attempts(self):
            self.login_attempts += 1
            return self.login_attempts
    
        def reset_login_attempts(self):
            self.login_attempts = 0
    
    
    if __name__ == '__main__':
        U1 = User('Liu', 'Bw', 'eerdos')
        print('Now, the number is ' + str(U1.increment_login_attempts()))
        U1.increment_login_attempts()
        # 这里不能用self,要用U1,你实例化的对象是U1,self只在类内部使用,外部使用需要实例化对象.属性或函数(方法)
        print(U1.login_attempts)
    
    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论 编辑记录

报告相同问题?

问题事件

  • 系统已结题 1月19日
  • 已采纳回答 1月11日
  • 创建了问题 1月11日

悬赏问题

  • ¥15 付费求做一个自助抢单插件
  • ¥15 bat批处理,关于数据复制问题
  • ¥50 同步两个不同结果的array中某些属性
  • ¥15 悬赏15远程操控解决问题
  • ¥15 CST复制的模型无法单独修改参数?
  • ¥15 前端页面想做个定时任务,但是使用requestAnimationFrame,setinterval和settimeout都不行
  • ¥15 根据以下文字信息,做EA模型图
  • ¥15 删除虚拟显示器驱动 删除所有 Xorg 配置文件 删除显示器缓存文件 重启系统 可是依旧无法退出虚拟显示器
  • ¥15 vscode程序一直报同样的错,如何解决?
  • ¥15 关于使用unity中遇到的问题