没有合适的资源?快使用搜索试试~ 我知道了~
Python中的self用法详解
1.该资源内容由用户上传,如若侵权请联系客服进行举报
2.虚拟产品一经售出概不退款(资源遇到问题,请及时私信上传者)
2.虚拟产品一经售出概不退款(资源遇到问题,请及时私信上传者)
版权申诉
5星 · 超过95%的资源 12 下载量 152 浏览量
2020-12-31
11:22:45
上传
评论
收藏 412KB PDF 举报
温馨提示
在Python类中规定,函数的第一个参数是实例对象本身,并且约定俗成,把其名字写为self。其作用相当于java中的this,表示当前类的对象,可以调用当前类中的属性和方法。 class是面向对象的设计思想,instance(也即是 object,对象)是根据 class 创建的。 一个类(class)应该包含数据和操作数据的方法,通俗来讲就是属性和函数(即调用方法)。 类 class 中为啥用使用 self ? 在类的代码(函数)中,需要访问当前的实例中的变量和函数,即访问Instance中的: 对应的变量(property):Instance.ProperyNam,去读取之前的值和写入新的
资源推荐
资源详情
资源评论
Python中的中的self用法详解用法详解
在Python类中规定,函数的第一个参数是实例对象本身,并且约定俗成,把其名字写为self。其作用相当于java中的this,表示当前类的对象,可以调用当前类中的属性和方法。
class是面向对象的设计思想,instance(也即是 object,对象)是根据 class 创建的。
一个类(class)应该包含数据和操作数据的方法,通俗来讲就是属性和函数(即调用方法)。
类 class 中为啥用使用 self ?
在类的代码(函数)中,需要访问当前的实例中的变量和函数,即访问Instance中的:
对应的变量(property):Instance.ProperyNam,去读取之前的值和写入新的值。
调用对应函数(function):Instance.function(),即执行对应的动作。
-> 而需要访问实例的变量和调用实例的函数,当然需要对应的实例Instance对象本身。
-> 而Python中就规定好了,函数的第一个参数,就必须是实例对象本身,并且建议,约定俗成,把其名字写为self。
-> 所以,我们需要self(需要用到self)。
首先,在Python中类的定义:
在python中,类是通过关键字 class 定义的:
class 后面紧跟类名,即 Person,类名通常大写字母开头,紧接着是(object),表示该类是从哪个类继承下来的,通常,如果没有合适的 继承类,就使用 object 类,这是所有类最
终都会继承的类。
class Person(object):
pass
将 Person类实例化,创建实例化是通过 类名+() 实现的。
class Person(object):
pass
student = Person() # 创建类的实例化
print(student)
print(Person)
可以看到,变量 student 指向的就是一个 Person的 object,后面的 0x0000026EE434D8D0 是内存地址,每个 object 的地址都不一样,而 Person 本身则是一个类。
也可以给实例变量绑定属性,比如:为 student 绑定 name 和 score 属性
class Person(object):
pass
student = Person()
# print(student)
# print(Person)
student.name = "Gavin" # 为实例变量
student 绑定 name 属性 类似于 赋值 操作
student.score = 100 # 为 其绑定
score 属性
print(student.name)p
rint(student.score)
上述的方法虽然可以为类的实例变量绑定属性,但是不够方便和elegant , 由于类 可以起到模板的作用,故在创建实例的时候,可以将我们认为必须绑定 属性 强制填写进去,在
python中,是通过 类中通常都会使用的一个方法,即def __init__(self) 方法,在创建实例变量的时候,就把 name 和 score 等属性绑上去。
class Person(object):
def __init__(self,name,score):
self.name = name
self.score = score
student = Person('Gavin',100) # 传入 __init__ 方法中需要的参数
print(student.name)
print(student.score)
传入空参数的情况,会报错:
class Person(object):
def __init__(self,name,score):
self.name = name
self.score = score
student = Person() # 此处应该有参数传入,却没有传
print(student.name)
print(student.score)
注意:
1、__init__ 方法的第一个参数永远是 self ,表示创建的实例本身,因此,在 __init__ 方法的内部,就可以把各种属性绑定到 self,因为 self 就指向创建的实例本身。
2、使用了 __init__ 方法,在创建实例的时候就不能传入 空的参数了,必须传入与 __init__ 方法匹配的参数,但是 self 不需要传,python解释器会自己把实例变量传进去。
在类中定义多个函数相互调用
class Person(object):
def __init__(self,x,y):
self.x = x
self.y = y
def add(self):
sum = self.x + self.y
return sum
def square(self):
squr = pow(self.x,2)+pow(self.y,2)
return squr
def add_square(self):
c = self.add()+self.square()
return c
student = Person(3,4)print(student.add())
print(student.square())
print('--------- 我是可爱的分割线-----------')
print(student.add_square())
剩余6页未读,继续阅读
资源评论
- Sunny0407112023-01-29资源有很好的参考价值,总算找到了自己需要的资源啦。
- Lovecat20212023-11-29内容与描述一致,超赞的资源,值得借鉴的内容很多,支持!
weixin_38589168
- 粉丝: 7
- 资源: 968
上传资源 快速赚钱
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
最新资源
资源上传下载、课程学习等过程中有任何疑问或建议,欢迎提出宝贵意见哦~我们会及时处理!
点击此处反馈
安全验证
文档复制为VIP权益,开通VIP直接复制
信息提交成功