• python练习2


    #由于Python是动态语言,根据类创建的实例可以任意绑定属性。
    #给实例绑定属性的方法是通过实例变量,或者通过self变量:
    #这一点不同于静态语言
    class Student(object):
        def __init__(self, name, gender):
            self.name = name
            self.age = 21
            self.__gender = gender
    
    
        def get_gender(self):
            return self.__gender
    
    
        def set_gender(self,gender):
            if gender not in ['male','female']:
                raise ValueError('bad gender')
            self.__gender=gender
    
    
        def get_age(self):
            return self.age
    
    
    # 测试:
    bart = Student('Bart', 'male')
    bart.grade = 100
    if bart.get_gender() != 'male':
        print('测试失败!')
    else:
        bart.set_gender('female')
        if bart.get_gender() != 'female':
            print('测试失败!')
        else:
            print('测试成功!')
    
    
    L = dir(bart)
    cnt = 0
    for item in L:
        print(item,end='  ')
        cnt+=1
        if cnt % 3 ==0:
            print('')
    
    
    print(bart.grade)
    #类属性是类所有的,实例属性是类对应实例属性所有的
    class Student(object):
        count = 0
    
    
        def __init__(self, name):
            self.name = name
            Student.count+=1
    
    # 测试:
    if Student.count != 0:
        print('测试失败!')
    else:
        bart = Student('Bart')
        if Student.count != 1:
            print('测试失败!')
        else:
            lisa = Student('Bart')
            if Student.count != 2:
                print('测试失败!')
            else:
                print('Students:', Student.count)
                print('测试通过!')
    
    class Screen(object):
        @property
        def width(self):
            return self._width
    
    
        @property
        def height(self):
            return self._height
    
    
        @width.setter
        def width(self,width):
            self._width = width
    
    
        @height.setter
        def height(self,height):
            self._height = height
    
    
        @property
        def resolution(self):
            return self._height * self._width
    
    
    # 测试:
    s = Screen()
    s.width = 1024
    s.height = 768
    print('resolution =', s.resolution)
    if s.resolution == 786432:
        print('测试通过!')
    else:
        print('测试失败!')

  • 相关阅读:
    链表
    线程池 ------ linux C实现
    thymeleaf 标签使用方法
    thymeleaf的配置
    exception processing, template error resolving template
    Thymeleaf模板表达式
    Mybatis:使用bean传值,当传入值为Null时,提示“无效的列类型”的解决办法
    windows 查看端口
    session与cookie的区别
    substr与substring的区别
  • 原文地址:https://www.cnblogs.com/MalcolmMeng/p/8442962.html
Copyright © 2020-2023  润新知