提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档
前言
在网上通过学习和看其他人的Python万年历程序(连接 https://www.cnblogs.com/chen-cai/p/11613813.html),然后自己写了半下午终于写了出来,刚学Python没多久别见怪,然后想着使用Python 中的类和对象对上述程序进行改写,学习也遇到了一些问题,和大家分享一下。
一、具体代码
下面直接黏贴具体代码,而函数编写万年历时需要注意的事项,具体链接中已有介绍,这里不再做描述,以下是具体代码:
#coding:utf-8
#coding:utf-8
class WanNianli(object):
def __init__(self, year, month):
self.year = year
self.mouth = month
def call_year(self, year):
ayear = self.year
if 0 == ayear % 4 and 0 != ayear % 100 or 0 == ayear % 400:
return True
else:
return False
def call_month(self, year, month):
days = 31
if 2 == month:
if self.call_year(year): #调用自身类中的函数时,必须使用 (self.)
days = 29
else:
days = 28
elif 4 == month or 6 == month or 9 == month or 11 == month:
days = 30
return days
def call_week(self, year, month):
today = 0
for i in range(0, year):
if self.call_year(i):
today += 366
else:
today += 365
for i in range(1, month):
today += self.call_month(year, i)
return today
def call_print(self, year, month):
print()
print("日\t一\t二\t三\t四\t五\t六")
print()
count = 0
for c in range(self.call_week(year, month) % 7):
print(end="\t")
count += 1
for day in range(1, self.call_month( year, month) + 1):
print(day, end="\t")
count += 1
if 0 == count % 7:
print("\n")
ku_wannain = WanNianli(2021, 12)
ku_wannain.call_print(2021, 12)
# 二、在使用类和对象编写过程中遇到的部分问题
## 1.显示的问题
第一次使用CSDN写文章,不是很熟悉,把部分截图放到里面,放置大家出错。
![在这里插入图片描述](https://img-blog.csdnimg.cn/20210216194923317.png)
![在这里插入图片描述](https://img-blog.csdnimg.cn/2021021619494678.png)
## 2.遇到的部分问题
1.__init__() 具体写法不要写错了:
![在这里插入图片描述](https://img-blog.csdnimg.cn/20210216195140960.png)
2.调用类中函数时,要加上self. :
![在这里插入图片描述](https://img-blog.csdnimg.cn/20210216195248900.png)
3.类中函数在具体调用传参时,不要再带self:
![在这里插入图片描述](https://img-blog.csdnimg.cn/20210216195410917.png?x-oss-process=image/watermark,type_ZmFuZ3poZW5naGVpdGk,shadow_10,text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L20wXzM3ODIxOTcw,size_16,color_FFFFFF,t_70)
不要忘记了对象的实例化就行了