您的位置:首页 > 编程语言 > Python开发

Python入门笔记 之 函数与类

2018-02-11 12:05 302 查看

函数

       定义函数
            定义一个函数要使用def语句,依次写出函数名,括号(需要传递的参数)和冒号,然后在缩进块中编写函数体        # 定义函数
        def my_user(x):
            if x > 0:
                return x
            else:
                return -x
        print(my_user(3))
        >>>
        3
        # 定义一个空函数
        def nod():
            pass;    # pass可以做占位符
            函数体内部的语句在执行时,一旦执行到return,函数就执行完毕,并将结果返回,如果没有return语句,函数执行完毕后也会返回结果,只是结果为None,return None 可以简写成return
            函数可以同时返回多个值,但其实就是一个元祖(tuple)
            函数体内部可以随时return返回结果
            函数执行完毕也没有return语句时,返回 return None
        

函数的参数

    # 位置参数 -- 调用函数时,传入的两个值按照位置顺序依次赋给x,y
    def power(x,y):
        s = 1
        while y > 0:
            y = y-1
            s = s*x
        return s
    print(powr(2,3))
    # 默认参数 -- 给y传入默认值
    # 注意,必选参数在前,默认参数在后
    def power(x,y=2):
        s = 1
        while y > 0:
            y = y-1
            s = s*x
        return s
    # 可变参数 -- 在函数内部,参数numbers接受到的是一个tuple,因此,函数代码完全不变,但是,调用该函数时可以传入任意个参数
    def power(*numbers):
        sum = 0
        for n in numbers:
            sum = sum+n*n
        return sum
    print(power(5))
    # 关键字参数 -- 允许传入0个或多个含参数名的参数,这些关键字参数在函数内部自动组装成一个dict
    def power(name,age,**kw):
        print('name:',name,'age:',age,'other:',kw)
    power('Tom',23,sex = '男')
    >>>
    name: Tom age: 23 other: {'sex': '男'}
        # 关键字参数可以先组装字典,再传入函数中
    def power(name,age,**kw):
      print('name:',name,'age:',age,'other:',kw)
  k = {'sex':'男'}
  power('Tom',23,**k)

       创建和使用类class Hotel():
    def __init__(self, room, a=1, b=2):
        self.room = room
        self.a = a
        self.b = b
    def all(self,c=1):
        return (self.room * self.a + self.b) * c
    
if __name__ == '__main__':
    x = Hotel(100)
    print(x.all())
        继承    # 父类
class AddBook():
def __init__(self, name, phone):
self.name = name
self.phone = phone

def get_phone(self):
return self.phone

# 子类,继承
class EmplEmail(AddBook):
def __init__(self, nm, ph, email):
# AddBook.__init__(self, nm, ph) # 调用父类方法一
super(EmplEmail, self).__init__(nm, ph) # 调用父类方法二
self.email = email

def get_email(self):
return self.email

# 调用
if __name__ == "__main__":
Detian = AddBook('handetian', '18210413001')
Meng = AddBook('shaomeng', '18210413002')

print (Detian.get_phone())
print (AddBook.get_phone(Meng))

alice = EmplEmail('alice', '18210418888', 'alice@xkops.com')
print (alice.get_email(), alice.get_phone())
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: