python10day

def test(num):
print(“在函数内部%d对应的地址是%d” % (num, id(num)))
result = “hello”
print(“函数要返回的内存地址是%d” % id(result))
return num

a = 10
print(“a变量的数据存储地址是%d” % id(a))
r = test(a)
print("%s的内存地址是 %d" % (r, id®))

魔方方法

迭代器菲波那数列

class Fib:
def init(self):
self.a = 0
self.b = 1
self.count = 0

def __iter__(self):
    return self

def __next__(self):
    self.a, self.b = self.b, self.a + self.b

f = Fib()
c = 0
for i in f:
c += 1
if c > 12:
break
print(i)
*******************************************************
# 邮箱类
class Email:
# 属性
password = ‘’
# 设置用户名是否允许删除
isdelname = False # True 能删除 False不能
# 方法
pass

# 设置初始化方法,添加描述符使用的变量 var
def __init__(self):
    self.var = '小强'

# 获取操作的方法 ___get__
def fget(self):
    # 返回值前处理数据
    result = self.var[0] + '*' + self.var[-1]
    return result

# 设置操作的方法 __set__
def fset(self, value):
    # 设置值(本例没有做其他处理)
    self.var = value

# 删除操作的方法__delete__
def fdelete(self):
    # 判断是否能删除用户名
    if self.isdelname == True:
        del self.var

# 将成员属性交给描述符操作
username = property(fget, fset, fdelete)  # 注意:三个变量的顺序是固定的

# 以下是测试

实例化对象

e = Email()

获取属性

print(e.username)

设置属性

e.username = ‘打不死的小强’
print(e.username)

删除属性

del e.username
print(e.username)

修饰器

def hello(fn):
def wrapper():
print(“hello, %s” % fn.name)
fn()
print(“goodby, %s” % fn.name)

return wrapper

@hello
def foo():
print(“i am foo”)

foo()

修饰器

def sit(dog):
def roller():
print(" is now sitting,%s" % dog.name)
dog()
print(“is now roller,%s” % dog.name)

return roller

@sit
def dog_dectorater():
print(“your is dog”)

dog_dectorater()


猜你喜欢

转载自blog.csdn.net/qq_38501057/article/details/88426439
今日推荐