【python新手笔记(一)】class中的__init__和self的含义

一. self和__init__的简单说明
        Python里学习class时,最难理解的就是参数self和函数__init__。如:
# 定义类Student
class Student(object):
    def __init__(self,name,score):
        self.name = name #将name封装到类里面去
        self.score = score

        __init__像是类的构造函数,在类的实例创建后被立即调用。你可以在__init__中将变量赋值给类自己的属性变量。

        Self指向类本身。可以理解为,通过self.name = name的操作,将数据封装在类里面,调用时直接通过类Student去进行调用。若不进行self.name = name的操作,类的实例无法调用name
# 类的一个实例
example = Student('John',95)



. class中的私有变量和特殊变量

    name            公共变量,可通过类class访问    
    __name         私有变量,无法通过外部访问
    __name__      特殊变量,可以通过类class访问

如果希望类Student里的变量不被外部访问,在封装变量时可在变量前面加__,如self___name = name,这样就无法从外部访问私有变量name了。

name已经是私有变量,但外部代码要获取,则可以增加定义get_name和get_score。

class Student(object):
    def __init__(self,name,score):
        self.__name = name
        self.__score = score
    def get_name(self):
        return self.__name
    def get_score(self):
        return self.__score
    若要改变私有变量,可增加定义set_name和set_score。

class Student(object):
    ....

    def set_name(self,name):
        self.__name = name    
    def set_score(self,score):
        self.__score = score
. self的一些具体用法

    1.self代表类的实例,而非类。
    2.编写类时不写self会报错,显示函数应该有零个变量而你给了一个。
    3.在继承时,使用的数据是传入实例的数据,而非定义self的父类的数据。



    

参考资料:1.《深入Python: Dive into Python中文版》第五章 http://www.kuqin.com/docs/diveintopythonzh-cn-5.4b/html/object_oriented_framework/defining_classes.html#d0e11854
                 2.https://blog.csdn.net/CLHugh/article/details/75000104

  • 2
    点赞
  • 31
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值