关于 python 几个常用和比较基础的高级用法
一: 通过代码连续运行命令行命令:
import os
os.system('cd && ls && cd work')
二: 类属性
from datetime import date, datetime
class User:
def __init__(self, name, birthday):
self.name = name
self.birthday = birthday
self._age = 0
# def get_age(self):
# return datetime.now().year - self.birthday.year
@property
def age(self):
return datetime.now().year - self.birthday.year
@age.setter
def age(self, value):
self._age = value
if __name__ == "__main__":
user = User("bobby", date(year=1987, month=1, day=1))
user.age = 30
print (user._age)
print(user.age)
三:yield 的使用方式
def fab(max):
n, a, b = 0, 0, 1
while n < max:
yield b
a, b = b, a + b
n += 1
return "done"
if __name__ == "__main__":
# read_file("C:/Users/ThinkPad/Desktop/log.txt")
a = fab(5)
print(a.__next__())
print(a.__next__())
print(a.__next__())
print(a.__next__())
print(a.__next__())
print(a.__next__()) # 报错StopIteration
四: python 的 new 和 init
class User:
def __new__(cls, *args, **kwargs):
print (" in new ")
return super().__new__(cls)
def __init__(self, name):
print (" in init")
pass
#new 是用来控制对象的生成过程, 在对象生成之前
#init是用来完善对象的
#如果new方法不返回对象, 则不会调用init函数
if __name__ == "__main__":
user = User(name="bobby")
这个必须点赞👍