python代码实例

1.类的导入

# 从 DataChangetest 模块中导入 DataChange 类,并使用该类中的 eightToten(self,p) 方法,实现将输入的八进制转换成十进制输出。
########## Begin ##########
//导入DataChangetest模块,可以用该模块调用类
import DataChangetest     

obj=DataChangetest.DataChange() #实例化对象
n=input()       #获取用户输入
obj.eightToten(n)    #obj对象调用Datachange类中的方法
'''
eightToten(self,p)方法
因为这是一个类方法,所以这里的类可以不写
'''

########## End ##########

2.类的继承

class Point:
    def __init__(self,x,y,z,h):
        self.x = x
        self.y = y
        self.z = z
        self.h = h
    def getPoint(self):
        return self.x,self.y,self.z,self.h
class Line(Point):
    # 请在下面填入覆盖父类getPoint()方法的代码,并在这个方法中分别得出x - y与z - h结果的绝对值
    ########## Begin ##########
    def getPoint(self):
        length_one = abs(self.x-self.y)    
		#其实这里有点搞不懂为什么用self.x,只是知道子类中没有定义属性,只是调用了父类方法。这里应该的self应该也是父类的self,然后用self.x调用父类中已经定义的变量
        length_two = abs(self.z-self.h)

    ########## End ##########
        print(length_one,length_two)  ##直接打印两个变量的结果。

3.super函数

1.super() 定义和用法
super() 函数用于提供对父类或同胞类的方法和属性的访问。

super() 函数返回代表父类的对象。
class ChangeAbs(int):
    def __new__(cls, val):
        # 填入使用super()内建函数去捕获对应父类以调用它的__new__()方法来计算输入数值的绝对值的代码
        # 求一个数的绝对值的函数为abs()
        # 返回最后的结果
        ########## Begin ##########
        super(ChangeAbs,self).__int__()   #我写的代码

        return super(ChangeAbs,cls).__new__(cls,abs(val)) #答案
        
        ########## End ##########

class SortedKeyDict(dict):
    def keys(self):
        # 填入使用super()内建函数去捕获对应父类使输入字典自动排序的代码
        # 返回最后的结果
        ########## Begin ##########
		return sorted(super(SortedKeyDict,self).keys())
        ########## End ##########
  1. #def 一个函数最后是要有输出或者返回值的,需要return语句.
  2. super(ChangeAbs,cls)用来捕获对应属性 ,调用__new__(cls,val)方法这里 的__new__(cls,val)方法不知道是直接父类调用子类方法,还是父类调用它自身的方法
  3. 内建函数是abs(),直接作用在val参数上

4.类的私有化

import Bagtest
price = int(input())
bag = Bagtest.Bag(price)
# 请在下面填入输出Bag类中变量__price的代码
########## Begin ##########
print(bag._Bag__price)
########## End ##########
# 请在下面填入输出Bag类中变量_price的代码
########## Begin ##########
print(bag._price)
########## End ##########
  1. bag._Bag__prince 表示实例对象bag调用Bag类中的私有变量__price
    这是私有变量, 只有内部可以访问,外部不可以访问。但是也不是一定不可以访问,只是解释器把该变量解释成 _类名__xx
  2. bag._price 说明_price是私有变量,外部类仍可以访问

5.下划线相关知识

变量:

  1. 前带_的变量: 标明是一个私有变量, 只用于标明, 外部类还是可以访问到这个变量
  2. 前带两个_ ,后带两个_ 的变量: 标明是内置变量,
  3. 前面两个__的变量:这是私有变量, 只有内部可以访问,外部不可以访问。但是也不是一定不可以访问,只是解释器把该变量解释成 _类名__xx
  4. 大写加下划线的变量: 标明是 不会发生改变的全局变量

函数:

  1. 前带_的变量: 标明是一个私有函数, 只用于标明,
  2. 前带两个_ ,后带两个_ 的函数: 标明是特殊函数

6.类的授权

class WrapClass(object):
    def __init__(self,obj):
        self.__obj = obj
    def get(self):
        return self.__obj
    def __repr__(self):
        return 'self.__obj'
    def __str__(self):
        return str(self.__obj)
    # 请在下面填入重写__getattr__()实现授权的代码
    ########## Begin ##########
    def __getattr__(self,thelist):
        return getattr(self.__obj,thelist)
    ########## End ##########


thelist = []
inputlist = input()
for i in inputlist.split(','):
    result = i
    thelist.append(result)
# 请在下面填入实例化类,并通过对象调用thelist,并输出thelist第三个元素的代码
########## Begin ##########
temp=WrapClass(thelist)
temp_list=temp.get()
print(temp_list[2])
########## End ##########

包装和授权参考

7.对象的销毁

import delObjecttest
# 请在下面声明类delObject的实例,并将其引用赋给其它别名,然后调用del方法将其销毁
########## Begin ##########

temp=delObjecttest.delObject()
temp2=temp
del(temp)     #销毁对象  del(对象名)

########## End ##########