python类

python类

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

class Student:#Student类名,有一个或多个单词组成,每个单词首字母大写,其余小写
    pass

#对象由三部分组成:id(内存空间)、类型(type)、值
#python一切皆对象
#Student类对象
print(id(Student))#2410232461840
print(type(Student))#<class 'type'>
print(Student)#<class '__main__.Student'>


class Student:#Student类名,有一个或多个单词组成,每个单词首字母大写,其余小写
    native_pace = '安徽'#类里面的变量为类属性
    def __init__(self,name,age):
        self.name=name  #self.name为实例属性,进行了一个赋值操作,将局部变量得到name的值赋给了实例属性
        self.age=age

    #实例方法
    def eat(self):
        print('吃饭了######')

    #静态方法
    @staticmethod
    def method():
        print('使用staticmethod进行修饰的是静态方法,不允许写self')

    #类方法
    @classmethod
    def cm(cls):
        print('使用classmethod进行修饰为类方法')

#在类之外定义的函数为函数,在类之内定义的函数为方法
def eat1(self):
    print('xusadasdasdsa')

#创建Student类的对象
stu1 = Student('da',20)
print(id(stu1))
print(type(stu1))
print(stu1)
"""
1674733436448
<class '__main__.Student'>
<__main__.Student object at 0x00000185EDE43E20>
1674733436448 == 0x00000185EDE43E20
单独输出stu1时得到的时stu1的地址
"""
#调用方法1
stu1 = Student('da',20)
stu1.eat()          #对象名.方法名()
print(stu1.name)
print(stu1.age)
print('-------------------------------------------')

#调用方法2
Student.eat(stu1)    #stu1.eat()<=等价于=>Student.eat(stu1)
#eat(self)中的self是本身,而stu1 = Student('da',20)使stu1变为Student的对象,也就是self本身
#类名.方法名(类的对象)-->实际上就是方法定义处的self
Student.__init__(stu1,'das',220)
print(stu1.name)
print(stu1.age)

在这里插入图片描述
在这里插入图片描述

动态绑定属性和方法

在这里插入图片描述
在这里插入图片描述

class Student:#Student类名,有一个或多个单词组成,每个单词首字母大写,其余小写
    def __init__(self,name,age):
        self.name=name  #self.name为实例属性,进行了一个赋值操作,将局部变量得到name的值赋给了实例属性
        self.age=age

    #实例方法
    def eat(self):
        print(self.name+'吃饭了######')

stu1 = Student('张三',20)
stu2 = Student('李四',30)
print('--------------------为stu2动态绑定性别属性-------------------------')
stu1.gender = '女'
print(stu1.name,stu1.age,stu1.gender)
print(stu2.name,stu2.age,stu2.gender)

"""
Traceback (most recent call last):
  File "C:\Users\wdy\Desktop\函数\venv\Demo\demo7.py", line 15, in <module>
    print(stu2.name,stu2.age,stu2.gender)
AttributeError: 'Student' object has no attribute 'gender'
--------------------为stu1动态绑定性别属性-------------------------
张三 20 女
"""

class Student:#Student类名,有一个或多个单词组成,每个单词首字母大写,其余小写
    def __init__(self,name,age):
        self.name=name  #self.name为实例属性,进行了一个赋值操作,将局部变量得到name的值赋给了实例属性
        self.age=age

    #实例方法
    def eat(self):
        print(self.name+'吃饭了######')
        
print('--------------------为stu1动态绑定函数-------------------------')
def show():
    print('定义在类之外的函数')

stu1.show = show
stu1.show()
stu2.show()

在这里插入图片描述

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

weixin_43350706

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值