zoukankan      html  css  js  c++  java
  • 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('测试失败!')

  • 相关阅读:
    Dan Gillmor总结微软付费平息纠纷历史
    从一份GIS试题谈GIS开发人员的技能和招聘
    转载:赵勖予,废旧电脑配件的新用法next
    百度败诉MP3搜索遭封杀
    给人也装一个中断系统
    ArcGIS Server 9.2的一些新特征
    基于MA和CA的交通空间决策模型
    Modeling Our World 读书笔记
    卸载了NewsGator,开始使用Gougou
    OpenOffice.org 2.0即将发布
  • 原文地址:https://www.cnblogs.com/MalcolmMeng/p/8442962.html
Copyright © 2011-2022 走看看