沙德沃克 2020-07-17 00:19 采纳率: 100%
浏览 60
已采纳

麻烦大佬看下为啥调用实例类密码函数无法用property

class user:
def init(self,name='abcdefg',password='1234567'):
#双下划线开头,隐藏变量
self.__name=name
self.__password=password

def getname(self):
    return self.__name;
def setname(self,name):
    if isinstance(name,str) and 4<= len(name) <=8:
        self.__name = name
    else:
        print("无效用户名")
name=property(fget=getname,fset=setname);

@property
def getpwd(self):
    return self.__password;
@getpwd.setter
def setpwd(self,password):
    if isinstance(password,str) and 4 <= len(password) <= 8:
        self.__password = password
    else:
        print("无效密码")
# password = property(fget=getpwd, fset=setpwd);

c=user()
c.name='a'
c.password='1'

  • 写回答

1条回答 默认 最新

  • 水滴重甲 2020-07-17 13:49
    关注

    property 用错了
    修改为我下面的这种

    
    class user:
        def init(self, name='abcdefg', password='1234567'):
            # 双下划线开头,隐藏变量
            self.__name = name
            self.__password = password
    
        def getname(self):
            return self.__name
    
        def setname(self, name):
            if isinstance(name,str) and 4<= len(name) <= 8:
                self.__name = name
                print("用户名设置成功")
            else:
                print("无效用户名")
    
        name = property(fget=getname, fset=setname)
    
        @property
        def password(self):
            """I'm the 'password' property."""
            return self.__password
    
        @password.setter
        def password(self, password):
            if isinstance(password, str) and 4 <= len(password) <= 8:
                self.__password = password
                print("密码设置成功")
            else:
                print("无效密码")
    
    c = user()
    c.name = 'abcde'
    c.password = '12345'
    
    
    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论

报告相同问题?

悬赏问题

  • ¥30 Matlab打开默认名称带有/的光谱数据
  • ¥50 easyExcel模板 动态单元格合并列
  • ¥15 res.rows如何取值使用
  • ¥15 在odoo17开发环境中,怎么实现库存管理系统,或独立模块设计与AGV小车对接?开发方面应如何设计和开发?请详细解释MES或WMS在与AGV小车对接时需完成的设计和开发
  • ¥15 CSP算法实现EEG特征提取,哪一步错了?
  • ¥15 游戏盾如何溯源服务器真实ip?需要30个字。后面的字是凑数的
  • ¥15 vue3前端取消收藏的不会引用collectId
  • ¥15 delphi7 HMAC_SHA256方式加密
  • ¥15 关于#qt#的问题:我想实现qcustomplot完成坐标轴
  • ¥15 下列c语言代码为何输出了多余的空格