加入 Gitee
与超过 1200万 开发者一起发现、参与优秀开源项目,私有仓库也完全免费 :)
免费加入
文件
该仓库未声明开源许可证文件(LICENSE),使用请关注具体项目描述及其代码上游依赖。
克隆/下载
py04-property.py 1.29 KB
一键复制 编辑 原始数据 按行查看 历史
eddiechow 提交于 2018-02-09 16:47 . demo增加
# -*- coding:utf-8 -*-
"""property"""
__author__ = 'Eddie Chow'
import datetime
class Student(object):
def __init__(self, name):
self.name = name
def __str__(self):
return 'Student object (name:%s)' % self.name
__repr__ = __str__
# 返回不存在的属性
def __getattr__(self, item):
if item == 'score':
# 默认值
return 99
if item == 'age':
# 返回函数,调用方式为 age()
return lambda: datetime.datetime.now().year - 1990
# 默认会返回 None,这样的话就会返回一个属性异常
raise AttributeError('Student object has no attribute %s' % item)
class Fib(object):
def __init__(self):
self.a, self.b = 0, 1
def __iter__(self):
return self
def __next__(self):
self.a, self.b = self.b, self.a + self.b
if self.a > 100:
raise StopIteration()
return self.a
if __name__ == '__main__':
s = Student('Eddiechow')
# 默认调用 __str__方法
print(s)
# for n in Fib():
# print(n)
f = Fib()
print(f.__next__())
print(f.__next__())
print(f.__next__())
print(f.__next__())
print(f.__next__())
# s = Student('Eddie')
# print(s.name, s.score, s.age(), s.abc)
Loading...
马建仓 AI 助手
尝试更多
代码解读
代码找茬
代码优化