python 基础语法--对象Object

class Student:  #Student为类的名称(类名)由一个或多个单词组成,每个单词的首字母大写,其余小写
    pass

#Python中一切皆对象Student是对象吗?内存有开空间吗?
print(id(Student)) #2926222013040
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('我使用了statticmethod进行修饰,所以我是静态方法')

    #类方法
   @classmethod
   def cm(cls):
       print('我是类方法,因为我使用了classmethod进行修饰')
#在类之外定义的称为函数,在类之内定义的称为方法
def drink():
    print('喝水')
print('----------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('我使用了statticmethod进行修饰,所以我是静态方法')

    #类方法
   @classmethod
   def cm(cls):
       print('我是类方法,因为我使用了classmethod进行修饰')
#在类之外定义的称为函数,在类之内定义的称为方法
def drink():
    print('喝水')
print('----------#创建Student类的对象-----------')
#创建Student类的对象
stu1=Student('张三',20)  
print(id(stu1))
print(type(stu1))
print(stu1)
print('---------------------')
print(id(Student))  #Student是类的名称  stu1是对象名称,使用stu1对象的指针,指向Student类的
print(type(Student))
print(Student)


class Student:  #Student为类的名称(类名)由一个或多个单词组成,每个单词的首字母大写,其余小写
   native_pace='吉林'  #直接写在类里的变量,称为类属性
   def __init__(self,name,age):
       self.name=name    #self.name 称为实体属性  ,进行了 一个赋值的操作,将局部变量的name的值赋给实体属性
       self.age=age

   #实例方法
   def eat(self):  默认参数 self
       print('学生在吃饭...')

    #静态方法  的使用方式是类目直接调用 Student.method()没有默认参数
   @staticmethod
   def method():
       print('我使用了statticmethod进行修饰,所以我是静态方法')

    #类方法  的使用方式是类目直接调用 Student.cm()  默认参数 cls
   @classmethod
   def cm(cls):
       print('我是类方法,因为我使用了classmethod进行修饰')
#在类之外定义的称为函数,在类之内定义的称为方法
def drink():
    print('喝水')

#创建Student类的对象
stu1=Student('张三',20)
stu1.eat()            #对象名.方法名()
print(stu1.name)
print(stu1.age)

print('------------------------')
Student.eat(stu1)     #stu1.eat()与Student.eat(stu1) 功能相同,都是调用Student中的eat方法
                      #类名.方法名(类的对象)-->实际上就是方法定义处的self

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('我使用了statticmethod进行修饰,所以我是静态方法')

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


#类属性的使用方式
#print(Student.native_pace)  #native_pace是类属性
stu1=Student('张三',20)
stu2=Student('李四',30)
print(stu1.native_pace) 
print(stu2.native_pace)
Student.native_pace='天津'
print(stu1.native_pace)
print(stu2.native_pace)
print('---------类方法的使用方式------------------')
Student.cm()
print('---------静态方法的使用方式------------------')
Student.method()

class Student:   #属于 类的属性 所有对象都可用
    def __init__(self,name,age):
        self.name=name
        self.age=age
    def eat(self):
        print(self.name+'在吃饭')

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

print('--------------------------')
stu1.eat()
stu2.eat()

def show():
    print('定义在类之外的,称函数')
stu1.show=show   #是stu1独有的方法
stu1.show()

#stu2.show()  #因为stu2并没有绑定show方法


  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值