38,39,40,41,....

0:  不用重新定义  或者使代码不至于太长。

1:报错

2:不会  但是会屏蔽

3:重新定义下pass  这样会屏蔽

4:木知  很强反正

5:不知道啊  你想实现什么样的呢 

6:同上  不想重复嘛  用super()

7:

import math
import random
print(math.sqrt(25))
class point():
    def __init__(self):
        self.x = random.randint(-100,100)
        self.y = random.randint(-100,100)

class line():
    def __init__(self):
        self.point1 = point()
        self.point2 = point()

    def getlen(self):
        length = math.sqrt(abs(self.point1.x-self.point2.x)^2+abs(self.point1.y-self.point2.y)^2)
        return length

line1 = line()
print(line1.getlen())

8:

 

 

39讲:::

 

0:组合就是在一个类里实例化另一个类。

1:当你需要另一个类的方法时一般用继承把  还不想产生实例

2:实例化时。

3:不知道啊 方法调用要加括号吧  尽量不要让两个相同  属性会覆盖方法。

4:num count是类 x ,y 是实例?

5:没有self 找不到家了

6:

class a():
    count = 0
    def __init__(self):
        a.count += 1

    def getcount(self):
        return self.count
    def __del__(self):
        a.count -=1

a1 = a()
print(a1.getcount())
a2 = a()
print(a2.getcount())
a3 = a()
print(a.count)

del a3
print(a.count)

 

7:

class stack():
    def __init__(self):
        self.data = []

    def isEmpty(self):
        if len(self.data) == 0:
            return True
        else:
            return False

    def push(self,x):
        self.data.append(x)

    def pop(self):
        if(self.isEmpty()):
            print("抱歉 栈空")
        else:
            rel = self.data[len(self.data)-1]
            del self.data[len(self.data)-1]
            return rel

    def top(self):
        if(self.isEmpty()):
            print("抱歉 栈空")
        else:
            print(self.data[len(self.data)-1])


    def bottom(self):
        if(self.isEmpty()):
            print("抱歉 栈空")
        else:
            print(self.data[0])


stack1 = stack()
print(stack1.isEmpty())
stack1.push(123)
print(stack1.isEmpty())
print(stack1.top())
print(stack1.bottom())
stack1.pop()
print(stack1.isEmpty())

 

 

 

40:  ;:::::::::::::::::

 

0:  有函数吧  issubcalss(a,b)

1:isinstance(a,b)

2:?

3:制造接口

4: x = property(getXSize,setXSize,delXSize)

5: 这修饰符完全没看懂  我直接看答案了

class CodeA:
    def foo():
        print("调用静态方法 foo()")

        # 将 foo() 方法设置为静态方法
        foo = staticmethod(foo)
class CodeB:
    def foo(cls):
        print("调用类方法 foo()")

        # 将 foo() 方法设置为类方法
        foo = classmethod(foo)

改为:

class CodeA:
        @staticmethod
    def foo():
        print("调用静态方法 foo()")
class CodeB:
        @classmethod
    def foo(cls):
        print("调用类方法 foo()")

6:

看了这题才懂了很多  

@something
def f():
    print("I love FishC.com!")

# 相当于

def f():
    print("I love FishC.com!")

f = something(f)

 

 7:

 

 

 

 

 

 

 

41讲:

0: 双下划线把

 

1:__INIT__   错了是 new

2:需要对传入参数修改,调用时

3:不对  init只会返回空对象

4:  初始化时需要有返回实例对象时。

5:没有变量去引用类时

6:

class file:
    def __init__(self,filename='test.txt'):
        self.newfile = open(filename,'r+')
   
    def __del__(self):
        self.newfile.close()
        del self.newfile

7:

class C2F:
    def __new__(cls,C):
        return C*1.8+32

print(C2F(32))

8:

class Nint(int):
    def __new__(cls, arg=0):
        if isinstance(arg,str):
            total = 0
            for each in arg:
                total += ord(each)
        return int.__new__(cls,total)
print(Nint('fish'))

 

上一篇:每日一题-20(找出每所学校最低分数线)


下一篇:纯RAW数据转换为DNG格式