博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
关于def __init__(self)的一些知识点
阅读量:4084 次
发布时间:2019-05-25

本文共 1153 字,大约阅读时间需要 3 分钟。

转载自:

关于def __init__(self)的一些知识点

def __init__(self)在Python里面很常见,

Python中的self

在Python中的类Class的代码中,常看到函数中的第一个参数,都是self。以及Class中的函数里面,访问对应的变量(读取或者写入),以及调用对应的函数时,经常有以下代码:

self.valueName

valueName:表示self对象,即实例的变量。与其他的,Class的变量,全局的变量,局部的变量,是相对应的。

self.function()

function:表示是调用的是self对象,即实例的函数。与其他的全局的函数,是相对应的。

  • Python中为何要有self

在类的代码(函数)中,需要访问当前的实例中的变量和函数的,即,访问Instance中的:

对应的变量(property):Instance.ProperyNam,去读取之前的值和写入新的值

调用对应函数(function):Instance.function(),即执行对应的动作

-> 而需要访问实例的变量和调用实例的函数,当然需要对应的实例Instance对象本身

-> 而Python中就规定好了,函数的第一个参数,就必须是实例对象本身,并且建议,约定俗成,把其名字写为self,以safe为前缀的变量都可供类中的所有方法使用

-> 所以,我们需要self(需要用到self)

class Person:    def __init__(self, newPersionName):        self.name = newPersionName#此处正确的,通过访问self.name的形式,实现了:# 1.给实例中,增加了name变量# 2.并且给name赋了初值,为newPersionName    def sayYourName(self):        print('My name is %s'%(self.name))#此处由于开始正确的初始化了self对象,使得其中有了name变量,#所以此处可以正确访问了name值了p = Person('Bob')p.sayYourName()   #第一种调用方法print("-" * 50)Person('Bob').sayYourName()#第二种调用方法

在面向对象的编程中,对象是活动主题,类似这个p.sayYourName()的方法调用相当于说:“喂,p,请说出你的名字(sayYourName)。”有时候将函数的责任转到对象上,使我们能够编写功能更加丰富的函数(方法),也使代码的维护和复用更容易。(摘自《像计算机科学家一样思考Python》)

发布于 2019-01-21

你可能感兴趣的文章
React Native开发技术周报Issue#21-时隔半年,继续更新周报~
查看>>
Webpack 配置中的一股清流
查看>>
基于Vue2.0的知乎日报单页应用
查看>>
React.js中实现下拉刷新
查看>>
Webpack资料收录
查看>>
React.js系列学习
查看>>
React + iscroll5 实现完美 下拉刷新,上拉加载
查看>>
深入浅出 Redux 的设计思想
查看>>
Vue常用经典开源项目汇总参考-海量
查看>>
Vue路由详解
查看>>
Vue入门之组件化开发
查看>>
Vue实例详解与生命周期
查看>>
12个非常实用的JavaScript小技巧
查看>>
vue2.0-王者荣耀助手
查看>>
Vue.js音乐
查看>>
react-native-root-toast
查看>>
react native 之 react-native-image-picke的详细使用图解
查看>>
react-native-picker时间选择和城市选择
查看>>
React Native学习之Modal控件自定义弹出View
查看>>
towebp-loader诞生记~ 一个webpack 图片loader
查看>>