学习python遇到的一些有趣点(每日更新)

一、函数参数的传递
对于函数参数的传递,比如:

def add(a = 0, b = 0, c = 0):
    """三个数相加"""
    print(a)
    return a + b + c

print(add(1,2,3))
print(add(c = 200,b = 1000,a = 221)) #这里的参数会一一对应

在这里插入图片描述
从结果可以看出,对于
print(add(1,2,3)),
其函数的a处为1,
print(add(c = 200,b = 1000,a = 221))
其函数的a处为221,
对于python对于的参数的传递,可以通过指定参数进行赋值。

二、python对于类的一个很好的例子

from time import sleep

class Clock(object):
    """数字时钟"""

    def __init__(self, hour = 0, minute = 0, second = 0):
        """初始化方法
        :param hour: 时
        :param minute: 分
        :param second: 秒
        """
        self._hour = hour
        self._minute = minute
        self._second = second

    def run(self):
        """走字"""
        self._second += 1
        if self._second == 60:
            self._second = 0
            self._minute += 1
            if self._minute == 60:
                self._minute = 0
                self._hour += 1
                if self._hour == 24:
                    self._hour = 0

    def show(self):
        """显示时间"""
        return '%02d:%02d:%02d' % \
               (self._hour,self._minute,self._second)
def main():
    clock = Clock(23,59,57)
    while True:
        print(clock.show())
        sleep(1)
        clock.run()

if __name__ == '__main__':
    main()

这个数字时钟很好的解释了类,跟着敲一遍收获很多。

三、property修饰器

class Person(object):

    def __init__(self,name,age):
        self._name = name
        self._age = age

    #访问器 -getter方法
    @property
    def name(self):
        return self._name

    #访问器 -getter方法
    @property
    def age(self):
        return self._age

    #修改器 -setter方法
    @age.setter
    def age(self,age):
        self._age = age

    def play(self):
        if self._age <= 16:
            print('%s正在跳舞.'%self._name)
        else:
            print("%s正在唱歌."%self._name)

def main():
    person = Person('王大力',15)
    person.play()
    person.name = 17
    person.play()

if __name__ == '__main__':
    main()

使用getter,对参数内的变量进行包装然后外界能够访问进行修改变量,不过必须通过setter才能进行修改

猜你喜欢

转载自blog.csdn.net/aec153/article/details/112915482
今日推荐