class mytest:
def __init__(self,heyue,date):
self.path=r"\\192.168.0.220\marketdata\future-ticks"
self.heyue=heyue
self.date=date
self.zhulian=None
self.heyue_to_zhulian_flag=False
def getdf(self):
if self.heyue_to_zhulian_flag==False:
self.heyue_to_zuhlian()
if type(self.zhulian)==str:
df=pd.read_csv(os.path.join(self.path,self.date,self.zhulian),index_col=0)
df=df[["时间","价格"]]
else:
for i in self.zhulian:
def heyue_to_zhulian(self):
# 把主力合约换成主连名字
self.heyue_to_zhulian_flag=True
dirs=os.listdir(os.path.join(self.date,self.path))
if type(self.heyue)==str:
self.zhulian=[i for i in dirs if i.startswith(self.heyue[:2])][0]
else: # 列表
list1=[]
for heyue in self.heyue:
list1.append([i for i in dirs if i.startswith(heyue[:2])][0])
self.zhulian=list1
例如上例(代码没有写完),我需要在实例对象创建之后,执行一遍heyue_to_zhulian(),这个函数是改变一个属性的,只需要执行一次,有人说可以放在__init__里面,当然可以,但是不美观,可以在__init__里面加入一个标记,进行判断