0
点赞
收藏
分享

微信扫一扫

编程思想,类对象和实例对象

SDKB英文 2022-02-02 阅读 45
python
  1. 编程思想

    • 编程界的两大阵营
      在这里插入图片描述
  2. 类与对象

    • 数据类型:(1)不同的数据类型属于不同的类(2)使用内置函数查看数据类型
    • 对象:100,99,520,都是int下包含的相似的不同个例,这个个例专业术语称为实例或对象。
    • python中一切皆对象。
  3. 类的创建

    • 创建类的语法
class Student:#Student为类的名称(类名)由一个或多个单词组成,每个单词的首字母大写,其余小写
      pass
#python中一切皆对象,Student是对象吗?内存有开空间吗 ?
print(id(Student))
print(type(Student))
print(Student)     
  • 类的组成
class Student:
   native_place='吉林'#直接写在类里的变量,称为类属性
   def __init__(self,name,age):
       self.name=name #seif.name称为实体属性,进行了一个赋值的操作,将局部变量的name赋给实体属性
       self.age=age
   #实例方法
   def eat(self):
       print('学生在吃饭')
   #静态方法
   @saticmethod
   def method(): 
       print('静态方法') 
   @classmethod
   def cm(cls): 
       print('类方法')     
#在类之外定义的称为函数,在类之内定义的称为方法
def drink():
    print('喝水') 

在这里插入图片描述

  1. 对象的创建
class Student:
   native_place='吉林'
   def __init__(self,name,age):
       self.name=name 
       self.age=age
   def eat(self):
       print('学生在吃饭')
#创建student类的实例对象
stu1=Student('张三',20)
print(id(stu1))
print(type(stu1))
print(stu1)
stu1.eat()#学生在吃饭
print(stu1.name)#张三
print(stu1.age)#20

Student.eat(stu1)#学生在吃饭,调用Student中的eat方法
#类名.方法名(类的对象),实际上就是方法定义处的self
  1. 类属性,类方法,静态方法
#类属性:类种方法外的变量,被该类的所有对象所共享
#类方法:使用@classmethod修饰的方法,使用类名直接访问的方法
#静态方法:使用@staticmethod修饰的方法,使用类名直接访问的方法

#类属性的使用方式
class Student:
   native_place='吉林'
   def __init__(self,name,age):
       self.name=name 
       self.age=age
stu1=Student('张三',20)   
stu2=Student('李四',30)   
print(stu1.native_place)
print(stu2.native_place)
Student.native_place='天津'
print(stu1.native_place)
print(stu2.native_place)

在这里插入图片描述

  1. 动态绑定属性与方法
    • Python是动态语言,在创建对象之后,可以动态地绑定属性和方法
      在这里插入图片描述
#一个Student类可以创建N多个Student类的实例对象,每个实体对象的属性值不同
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))
#为stu2动态绑定性别属性
stu2.gender='女'
print(stu1.name,stu1.age)#但是stu1.gender不存在
print(stu2.name,stu2.age,stu2.gender)#李四,30,女
#动态绑定方法
def show():
    print('你好')
stu1.show=show
stu1.show() #你好
stu2.show() #Error   
举报

相关推荐

0 条评论