Python类的使用

#=======================================

# 《机器学习升级版》第七期 邹博  第四课 Python基础  源码4.2.class_intro.py

#=======================================

Python中class的定义格式:

class className:
    def __init__(self, arg1, arg2):
        #The code to initialize a "Athlete" object.
            ......
    def func(self):
        ....

    类中有一个特殊的成员函数:__init__(self, arg1, ....)。这是一个类的初始化函数,用于定义类的成员变量和成员函数。其中有一个特殊的关键字是self,我理解为指向自身的指针,调用成员变量和成员函数的时候前面都要加上self关键字,但类的实例调用时不用加self。在__init__函数中要定义出类中所需要的变量和函数(类似函数声明),在变量名或函数名前面加上“__”(两个下划线)表示这是个私有变量或私有函数。

    类的继承:

class A(B):
    def __init__(self, arg..):
        B.__init__(self, arg..) #需要人为调用父类的__init__函数
        ......

    上面的代码就表示A是B的子类,在子类的__init__函数中需要人为调用父类的__init__函数。

4.2.class_intro.py 代码笔记(与源码略有出入)

#!/usr/bin/python
#  -*- coding:utf-8 -*-

class People:
    def __init__(self, n, a, s):  #__init__函数的第一个变量必须是self
        self.name = n
        self.age = a
        self.__score = s  #私有变量
        #self.print_people()  #也可以执行函数等

    def print_people(self):
        str1 = '%s的年龄是:%d,成绩为:%.2f' % (self.name, self.age, self.__score)
        print(str1)

class Student(People):   #继承People类
    def __init__(self, n, a, w, cn):
        People.__init__(self, n, a, w)  #调用People初始化函数,传入对应参数
        self.name = 'Student ' + self.name  
        self.classNum = cn   #子类变量

    def print_student(self):
        str2 = '%s的年龄:%d' % (self.name, self.age)
        print(str2)
        print(self.classNum)

def func(p):
    p.age = 11

if __name__ == '__main__':
    p = People('Tom', 10, 3.14159)
    p.print_people()

    s = Student('Jerry', 12, 2.71828, 3)
    s.print_people()
    s.print_student()

    func(p)
    p.print_people()

输出结果为:

Tom的年龄是:10,成绩为:3.14
Student Jerry的年龄是:12,成绩为:2.72
Student Jerry的年龄:12
3
Tom的年龄是:11,成绩为:3.14

参考资料

1.   用class定义类--Python

2.   python之Class属性定义和访问

3.   Python class的一些知识




  • 1
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值