Python_面向对象——初识对象

类与对象

定义类   

class 类名[(父类)]:
类体

创建和使用

animal = Animal()
print(animal) *#<__main__.Animal object at 0x0000019A01FBBEB0>*

print打印对象必须重写_str_()方法

类成员分类

  • 类成员

    • 成员变量

      1.实例变量

      2.类变量

    属性

    • 成员方法

      1.实例方法

      2.类方法

      3.静态方法

     实例变量

    class Person(object):
    
        def __init__(self,age,name,weight):
            # pass
            self.age = age
            self.name = name
            self.weight = weight
    
    person1 = Person()
    print("{0}".format(person1.age))  #没有给构造器传入参数,所以是错误的
    
    #正确的是
    person2 =Person(18,'小明',70)
    print('年龄:{0} ,姓名:{1} ,体重 :{2}'.format(person2.age,person2.name,person2.weight
    

    类变量

    class Person(object):
    
        grade = '大二'
    
        def __init__(self,age,name,weight):
            # pass
            self.age = age
            self.name = name
            self.weight = weight
    

    构造方法

    class Person(object):
    
        grade = '大二'
    
        def __init__(self,age,name,weight):
            # pass
            self.age = age
            self.name = name
            self.weight = weight
    
        def eat(self):
            self.weight += 10
            print('--eat--')
        
        def run(self):
            self.weight -= 10
            print('--run--')
    
    person3 =Person(19,'小明',70)
    print('小明的体重是:{0}'.format(person3.weight))
    
    #通过实例调用方法
    person2.eat()
    print('小明的体重是:{0}'.format(person3.weight))
    person3.run()
    print('小明的体重是:{0}'.format(person3.weight))
    

      类方法

  • class Person(object):
    
        grade = '大二'
    
        def __init__(self,age,name,weight):
            # pass
            self.age = age
            self.name = name
            self.weight = weight
    
        def eat(self):
            self.weight += 10
            print('--eat--')
        
        def run(self):
            self.weight -= 10
            print('--run--')
    
        **@classmethod        #类方法的装饰器
        def add(cls,sex):       #申明类方法时注意前面要用cls
            return cls.grade + sex      #只能调用类变量或类方法**
    
  • me = Person.add(':男')
    print(me)
    
  • 静态方法

  • class Person(object):
    
        grade = '大二'
    
        def __init__(self,age,name,weight):
            # pass
            self.age = age
            self.name = name
            self.weight = weight
    
        def eat(self):
            self.weight += 10
            print('--eat--')
        
        def run(self):
            self.weight -= 10
            print('--run--')
    
        @classmethod        #类方法的装饰器
        def add(cls,sex):       #申明类方法时注意前面要用cls
            return cls.grade + sex      #只能调用类变量或类方法
    
        @staticmethod       #静态方法的装饰器
        def jing(sex):      #申明静态方法时注意前面什么都不需要
            return Person.add(sex)
    
  • me1 = Person.jing(':女')
    print(me1)
    
    me2 = Person(19,'小明',70)
    print(me2.jing(':不男不女'))
    
    
  • 注意:类方法需要绑定类,静态方法不需要,静态方法与类的耦合度更松散,可以通过实例调用

你可能感兴趣的:(Python学习,python)