吾爱破解 - 52pojie.cn

 找回密码
 注册[Register]

QQ登录

只需一步,快速开始

查看: 1476|回复: 2
收起左侧

[Python 转载] 【笔记】实例属性、实例方法

  [复制链接]
cccyyys 发表于 2021-6-23 09:35
实例属性
实例属性是从属于实例对象的属性,也叫“实例变量”。使用要点如下:
1、一般在__init__()方法中通过如下代码定义:self.实例属性名 = 初始值
2、在本类的其他实例方法中,也是通过self进行访问:self.实例属性名
3、创建实例对象后,通过实例对象访问:obj01 = 类名()  #创建对象,调用__init__()初始化属性
obj01.实例属性名 = 值  #可以给已有属性赋值,也可以新增属性
[Python] 纯文本查看 复制代码
class Student:  #类名一般首字母大写,多个单词一般使用驼峰原则
    def __init__(self,name,score):#构造函数名字固定为__init__(self),self必须有,且放在首位
        self.name=name
        self.score=score

    def say_score(self):  #self必须放在首位
        print('{0}的分数为:{1}'.format(self.name,self.score))

s1 = Student('cys',80)
s1.say_score()
s1.age = 18  #可以新增属性
s1.salary = 5000
print(s1.salary)
s2 = Student('jdq',15)
print(s2.score)

创建类对象时,内存中会先生成一个类对象,然后使用__new__()方法生成一个新的对象,我们使用__init__()把新生成的对象进行初始化,我们把Student类赋给了s1,就会把新生成的这个对象的内存指向s1,这时s1就相当于Student类,可以直接调用类里面的实例属性,也可以新增属性,但是注意实例属性是从属于实例对象的,一旦这个实例对象被删除或者生成一个新的对象,都无法使用这个对象里面的属性。
实例方法
实例方法是从属于实例对象的方法,实例方法的定义格式如下:
def 方法名(self,[,形参列表])
    函数体
方法的调用格式如下:
    对象.方法名([实参列表])
要点:1、定义实例方法时,第一个参数必须为self。
2、调用实例方法时,不需要也不能给self传参。self有解释器自动传参。
实例方法调用的本质:
[Python] 纯文本查看 复制代码
s1 = Student('cys',80)
s1.say_score()

解释器翻译时会翻译成Student.say_score(s1)。这是因为类中方法是共享的,假设创建类时新建对象的内存地址是123,这里面的方法和类中的方法代码是一样的,我们赋值给s1,就是把123给了s1,使用s1调用方法时系统自动传参传的是s1的内存地址,也就是123,而在Student.say_score(s1)里面,是直接调的类中的方法,然后实参是s1,s1的地址又是123,所以实际是和s1.say_score()一样的效果

本帖被以下淘专辑推荐:

发帖前要善用论坛搜索功能,那里可能会有你要找的答案或者已经有人发布过相同内容了,请勿重复发帖。

xfmiao 发表于 2021-6-23 11:45
和上次的类、构造函数是不是一样的
 楼主| cccyyys 发表于 2021-6-23 15:41
xfmiao 发表于 2021-6-23 11:45
和上次的类、构造函数是不是一样的

这个是在类里面的,实际属性基本上就是构造函数里的形参,方法就是类里面的函数
您需要登录后才可以回帖 登录 | 注册[Register]

本版积分规则

返回列表

RSS订阅|小黑屋|处罚记录|联系我们|吾爱破解 - LCG - LSG ( 京ICP备16042023号 | 京公网安备 11010502030087号 )

GMT+8, 2024-11-25 16:53

Powered by Discuz!

Copyright © 2001-2020, Tencent Cloud.

快速回复 返回顶部 返回列表