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 ##########
- #def 一个函数最后是要有输出或者返回值的,需要return语句.
- super(ChangeAbs,cls)用来捕获对应属性 ,调用__new__(cls,val)方法这里 的__new__(cls,val)方法不知道是直接父类调用子类方法,还是父类调用它自身的方法
- 内建函数是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 ##########
- bag._Bag__prince 表示实例对象bag调用Bag类中的私有变量__price
这是私有变量, 只有内部可以访问,外部不可以访问。但是也不是一定不可以访问,只是解释器把该变量解释成 _类名__xx - bag._price 说明_price是私有变量,外部类仍可以访问
5.下划线相关知识
变量:
- 前带_的变量: 标明是一个私有变量, 只用于标明, 外部类还是可以访问到这个变量
- 前带两个_ ,后带两个_ 的变量: 标明是内置变量,
- 前面两个__的变量:这是私有变量, 只有内部可以访问,外部不可以访问。但是也不是一定不可以访问,只是解释器把该变量解释成 _类名__xx
- 大写加下划线的变量: 标明是 不会发生改变的全局变量
函数:
- 前带_的变量: 标明是一个私有函数, 只用于标明,
- 前带两个_ ,后带两个_ 的函数: 标明是特殊函数
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 ##########