zoukankan      html  css  js  c++  java
  • 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
    
  • 相关阅读:
    ASPNET下的路径辅助类
    分析函数计算起始,结束日期.
    Debugging SQL Server 2005 Stored Procedures in Visual Studio
    Storing Binary Files Directly in the Database Using ASP.NET 2.0
    Fw:Managing View State in ASP.NET 4 Using the New ViewStateMode Property
    Using ASP.NET 3.5's ListView and DataPager Controls: Displaying Data with the ListView
    Passing Information Between Content and Master Pages .
    转:Querying a Hierarchical ParentChild Structure in LINQ
    续上篇:比较彻底的清除"代理木马下载器"的方法
    面向过程和面向对象--从C到C#
  • 原文地址:https://www.cnblogs.com/raygor/p/13347319.html
Copyright © 2011-2022 走看看