九,面向对象(类和实例对象)

目录

对象

实例对象的属性

对象方法(实例方法)

类对象和属性

 类方法


类与实例对象

(类与对象具有相同的方法和属性)类中可同时定义类方法与对象方法:区别在于第一个参数值

必须牢记类是抽象的模板,比如Person类,而实例是根据类创建出来的一个个具体的“对象”,每个对象都拥有相同的方法,但各自的数据可能不同。拥有相同属性和方法的具体事物则成为这个类的实例对象。

对象

在python语言中,一切皆对象!

我们之前学习过的字符串,列表,字典等等数据都是一个个的类,我们用的所有数据都是一个个具体的实例对象。

区别就是,那些类是在解释器级别注册好的,而现在我们学习的是自定义类,但语法使用都是相同的。所以,我们自定义的类实例对象也可以和其他数据对象一样可以进行传参、赋值等操作。

实例对象的属性

属性的数据类型由对象产生时的传入参数决定

p1 = class类('zhao',20,80)

初始化__init__() 方法 作用 :构造对象属性

先定义对象属性,方法。再生成对象。(类的调用赋值产生实例化对象)

__init__() 方法可以包含多个参数,但必须包含一个名为 self 的参数,且必须作为第一个参数。还可以自定义一些参数,参数之间使用逗号“,”进行分割。

# 定义Person类
class Person(object):
    def __init__(self,name,age): 
        self.name=name
        self.age=age
        print(id(self))


# 实例化Person类的实例对象:  类实例对象=类名(实例化参数)
alvin=Person("alvin",18)
yuan=Person("yuan",22)

print(id(alvin))

注:函数 id(object)返回的是对象的“身份证号”,唯一且不变,但在不重合的生命周期里,可能会出现相同的id值。此处所说的对象应该特指复合类型的对象(如类、list等),对于字符串、整数等类型,变量的id是随值的改变而改变的。

实例变量的属性的增删改查
p1.name="alvin"
p1.age=18

p2.name="yuan"
p2.age=22

print(p1.gender)
del p2.age

对象方法(实例方法)

实例方法或者叫对象方法,指的是我们在类中定义的普通方法。只有实例化对象之后才可以使用的方法

对象方法的第一个形参接收的一定是对象本身。(self参数代表对象方法)后接自定义对象变量

例:print_info方法,,,调用时:对象 . 方法名()##yuan . print_info()

class Person(object):

    def __init__(self,name,age):
        self.name=name
        self.age=age

    def print_info(self):
        print("姓名:%s,年龄:%s"%(self.name,self.age))


yuan = Person("yuan",18)
yuan.print_info()

类对象和属性

类对象:person                  实例化对象:对象 = person类(参数)##赋值产生

类属性:类定义内直接写     实例化对象属性:init方法中的定义和类属性

 (类方法都能调用,类属性只有类能使用,类与对象属性,方法相同)

class Person:
    # 类属性
    legs_num = 2
    has_emotion = True

    def __init__(self, name, age):
        self.name = name
        self.age = age

    def play_fire(self):

        print("%s玩火"%self.name)


# 实例对象和类对象可以获取类属性,但是只有类对象才能修改类属性
yuan = Person("yuan", 18)
alvin = Person("alvin", 18)

print(yuan.legs_num)
print(yuan.name)
# Person:一个类对象
print(Person.legs_num)

 类方法

定义:使用装饰器@classmethod第一个参数必须是当前类对象,该参数名一般约定为cls其余参数再cls后面用 ,逗号隔开。通过它来传递类的属性和方法(不能传实例的属性和方法);

调用:类对象或实例对象都可以调用。

class Student:

    cls_number = 68 # 类属性

    @classmethod  # 装饰器
    def add_cls_number(cls):
        cls.cls_number+=1
        print(cls.cls_number)

Student.add_cls_number() # 直接调用类方法

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
Python中,是一种对象,它是创建实例的蓝图或模板。定义了一组属性和方法,这些属性和方法可以被实例对象访问和调用。而实例对象则是的具体实现,是根据创建的对象。每个实例都有自己的属性和方法,不同实例之间的属性和方法是相互独立的。 对象本身的对象,它包含的属性和方法。可以通过对象来访问和修改的属性和方法,也可以通过对象创建实例对象实例对象的具体实现,每个实例都有自己的属性和方法。可以通过实例对象来访问和修改实例的属性和方法,但是不能访问和修改的属性和方法。可以通过对象创建实例对象,也可以通过实例对象访问和调用的方法。 举个例子: ```python class MyClass: class_attribute = 'class attribute' def __init__(self, instance_attribute): self.instance_attribute = instance_attribute def instance_method(self): print('This is an instance method') print(MyClass.class_attribute) # 访问属性 obj = MyClass('instance attribute') # 创建实例对象 print(obj.instance_attribute) # 访问实例属性 obj.instance_method() # 调用实例方法 MyClass.class_method() # 调用方法 ``` 在上面的例子中,`MyClass`是一个对象,`obj`是一个实例对象。我们可以通过对象`MyClass`来访问和修改属性`class_attribute`,也可以通过实例对象`obj`来访问和修改实例属性`instance_attribute`。同时,我们可以通过实例对象`obj`来调用实例方法`instance_method`,也可以通过对象`MyClass`来调用方法。

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值