75_实例属性和实例方法

78.实例属性和实例方法

实例属性

实例属性是从属于实例对象(创建的饼干)的属性,也称为“实例变量”。他的使用有如下几个要点:

  1. 实例属性一般在__init__()方法中通过如下代码定义:
    • self.实例属性名 = 初始值
  2. 在本类的其他实例方法中,也是通过self 进行访问:
    • self.实例属性名
  3. 创建实例对象后,通过实例对象访问:
    • obj01 = 类名() # 创建对象,调用__init__()初始化属性
    • obj01.实例属性名 = 值 # 可以给已有属性赋值,也可以新加属性

实例方法

79.实例方法

实例方法是从属于实例对象的方法。实例方法的定义格式如下:

def 方法名(self [, 形参列表]): 
    函数体 

方法的调用格式如下:

对象.方法名([实参列表])

要点:

  1. 定义实例方法时第一个参数必须为self。和前面一样,self 指当前的实例对象。
  2. 调用实例方法时,不需要也不能给self 传参。self 由解释器自动传参。

函数和方法的区别

  1. 都是用来完成一个功能的语句块,本质一样。 2. 方法调用时,通过对象来调用。方法从属于特定实例对象,普通函数没有这个特点。 3. 直观上看,方法定义时需要传递self,函数不需要。

实例对象的方法调用本质:

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-SCKFYbJ7-1599787028857)(612AB84276114188A094BAA968534D28)]

其他操作:

  1. dir(obj)可以获得对象的所有属性、方法
  2. obj.__dict__对象的属性字典 ,返回的是我们自己定义的属性。
  3. ·pass· 空语句
  4. isinstance(对象,类型) 判断“对象”是不是“指定类型”(更推荐使用此方法而不是type)

依然是这个例子 。

再看会有新的理解。

# 创建一个类


class Student:  # 类名  一般首字母大写  ,多个单词用驼峰原则

    def __init__(self, name, score):  # 方法,也就是函数
        self.name = name  # self 必须在 第一个
        self.score = score     # 这是 构造方法

    def say_score(self):  # self 必须位于第一位
        print('{0}的分数是:{1}'.format(self.name, self.score))


# 这句的意思是 调用' _int_ '构建函数  ,'self'代表的自己,把student的地址传给'self'
s1 = Student('onepis', 100)  # 通过类名()调用构造函数
# s1 就是一个 实例化对象。
onepis=Student('onepis',100)
s1.say_score() # 调用 此方法 输出 分数

# 添加年龄属性 和 工资 属性
s1.age = 32
s1.salary = 3000
print(s1.salary)


# 这叫实际例对象 S2 
s2 = Student('litao', 100)  # 新建的  s2 里面没 有   age   和 salary
# 所以 下面  5代码   会报错
# 类  创建的  对象s2  里面的  say_score  传递 self (注,self代表的就是实例化出来的对象)   找到  Student .方法(例如say_score)是一个行为,可以被  共享

# print(s2.age) # 报错
s2.say_score()

Student.say_score(s2)  # 解释器 实际调用  是这样调用的

print(dir(s1))  # dir  获得对象所有的  属性
print('**********************')
print(s1.__dict__)  # 获得我们直观的自己定义的属性

print(isinstance(s2, Student))  # s2是不是 Stundent 这个类型 的 实例对象(就是创造的饼干)

运行结果:

onepis的分数是:100
3000 # salary 工资
litao的分数是:100
litao的分数是:100
['__class__', '__delattr__', '__dict__', '__dir__', '__doc__', '__eq__', '__format__', '__ge__', '__getattribute__', '__gt__', '__hash__', '__init__', '__init_subclass__', '__le__', '__lt__', '__module__', '__ne__', '__new__', '__reduce__', '__reduce_ex__', '__repr__', '__setattr__', '__sizeof__', '__str__', '__subclasshook__', '__weakref__', 'age', 'name', 'salary', 'say_score', 'score'] 
# 调用 dir 查看的所有属性 
**********************
# 调用  .__dict__ 查看 我们自己创建的 属性。
{'name': 'onepis', 'score': 100, 'age': 32, 'salary': 3000}
True # 是Student 的 实例化 对象。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值