• 22 练习题:面向对象的命名空间 组合


    # 第一大题 : 读程序,标出程序的执行过程,画出内存图解,说明答案和为什么
    # 请不要想当然,执行之后检查结果然后再确认和自己的猜想是不是一致
    # (1)
    class A:
        Country = '中国'     # 静态变量/静态属性 存储在类的命名空间里的
        def __init__(self,name,age,country):  # 绑定方法 存储在类的命名空间里的
            self.name = name
            self.age = age
        def func1(self):
            print(self)
    
    a = A('alex',83,'印度')
    b = A('wusir',74,'泰国')
    A.Country = '英国'
    a.Country = '日本'
    print(a.Country)
    print(b.Country)
    print(A.Country)
    # '日本'
    # '日本'
    # '英国'
    
    
    
    # (2)
    class A:
        Country = ['中国']     # 静态变量/静态属性 存储在类的命名空间里的
        def __init__(self,name,age,country):  # 绑定方法 存储在类的命名空间里的
            self.name = name
            self.age = age
        def func1(self):
            print(self)
    
    a = A('alex',83,'印度')
    b = A('wusir',74,'泰国')
    a.Country[0] = '日本'
    print(a.Country)
    print(b.Country)
    print(A.Country)
    # ['日本']
    # ['日本']
    # ['日本']
    
    
    
    # (3)
    class A:
        Country = '中国'     # 静态变量/静态属性 存储在类的命名空间里的
        def __init__(self,name,age,country):  # 绑定方法 存储在类的命名空间里的
            self.name = name
            self.age = age
            self.Country = country
        def func1(self):
            print(self)
    
    a = A('alex',83,'印度')
    b = A('wusir',74,'泰国')
    A.Country = '英国'
    a.Country = '日本'
    print(a.Country)
    print(b.Country)
    print(A.Country)
    # '日本'
    # '泰国'
    # '英国'
    
    
    
    # (4)
    class A:
        Country = '中国'     # 静态变量/静态属性 存储在类的命名空间里的
        def __init__(self,name,age,country):  # 绑定方法 存储在类的命名空间里的
            self.name = name
            self.age = age
        def Country(self):
            return self.Country
    
    a = A('alex',83,'印度')
    b = A('wusir',74,'泰国')
    print(a.Country)
    print(a.Country())
    # <bound method A.Country of <__main__.A object at 0x000002A5FA79DDA0>>
    # <bound method A.Country of <__main__.A object at 0x000002A5FA79DDA0>>
    
    
    
    # 第二大题:基于圆形类实现一个圆环类,要求接收参数 外圆半径和内圆半径
    # 完成方法 :计算环形面积和环形周长(公式自己上网查)
    # 要求,借助组合,要求组合圆形类的对象完成需求
    from math import pi
    class Circle:
        def __init__(self, radius):
            self.radius = radius
        def Area(self):
            return pi * self.radius ** 2
        def Perimeter(self):
            return pi * 2 * self.radius
    
    class Annulus:
        def __init__(self, wrapper_radius, inner_radius):
            wrapper_radius, inner_radius = (wrapper_radius, inner_radius) 
                if wrapper_radius > inner_radius else (inner_radius, wrapper_radius)
            self.wrapper = Circle(wrapper_radius)
            self.inner = Circle(inner_radius)
        def A_Perimeter(self):
            return self.wrapper.Perimeter() + self.inner.Perimeter()
        def A_Area(self):
            return self.wrapper.Area() - self.inner.Area()
    
    
    annulus1 = Annulus(5, 10)
    print(annulus1.A_Perimeter())  # 94.24777960769379
    print(annulus1.A_Area())  # 235.61944901923448
    
  • 相关阅读:
    Design Pattern Quick Overview
    [转载]最好的HTML 5编码教程和参考手册分享 .
    业务学习
    [收藏转载]明星软件工程师的十种特质
    一般函数指针和类的成员函数指针
    [LoadRunner]负载测试工具
    [收藏转载]2011 APP年终总结——日均160元的收入经历
    Importance of Side Projects
    [P4 password]Avoiding the Perforce Prompt for Password in Windows
    [收藏转载]我所积累的20条编程经验
  • 原文地址:https://www.cnblogs.com/raygor/p/13347319.html
Copyright © 2020-2023  润新知