• python学习——面向对象成员


    1.面向对象的变量分为哪几种

    • 面向对象的变量:类变量、实例变量
      • 类变量(静态字段):
        • 公有类变量(静态字段)
        • 私有类变量(私有静态字段)
      • 实例变量(字段)
        • 公有实例变量(字段)
        • 私有实例变量(私有字段)
    class Foo:
        country = '中国'  # 类变量
    
        def __init__(self,name):
            self.name = name    # 实例变量
    
    obj1 = Foo('王小明')
    obj2 = Foo('小樱')
    
    Foo.country = '法国'
    print(obj1.country)
    print(obj2.country)
    
    obj1.name = '大头'
    print(obj1.name)
    View Code

    2.面向对象中方法有哪几种

    • 实例方法:使用对象封装__init__方法的值,使用实例方法
    • 静态方法:方法中使用对象中封装的值,使用静态方法
    • 类方法:在方法中需要用到当前类是,使用类方法
    3-1.实例方法:
    class Foo(object):
    
        def __init__(self,name):
            self.name = name
    
        def func(self):
            print(self.name)
    
    obj = Foo('爱丽丝')
    obj.func()
    
    3-2.静态方法和类方法:
    class Foo(object):
    
        @staticmethod
        def static():
            print('666')
    
        @classmethod
        def show(cls):
            print(cls)
    
    Foo.static()
    obj = Foo()
    obj.static()
    Foo.show()
    View Code

    3.面向对象的属性

    class Foo(object):
    
        @property
        def func1(self):
            return 1
    
        @property
        def func2(self):
            return 9
    
    obj = Foo()
    print(obj.func1)
    print(obj.func2)
    View Code

    4.简述静态方法和类方法的区别

    • 1.编写时
      • 静态方法:不需要加self @ staticmethod,参数可有可无,括号内直接可以放需要传的参数
      • 类方法:@ classmethod,cls默认参数,至少有一个参数
      • 实例方法:普通方法,调用对象封装的值
    • 2.调用时:
      • 静态方法和类方法:类名.方法名()/对象.方法名()
      • 实例方法:对象名.方法名()  
    • 应用场景:
      • 如果在方法内部不会用到对象相关的数据是,就可以用静态方法或类方法。需要用到对象相关数据时,才用实例方法。      
      • 如果在方法中需要用当前类是,类方法默认传参是当前类,可以用类方法。  

    5.面向对象的方法中定义时无需给参数

    • 定义时不需要写参数:静态方法  

    6.面向对象公有和私有成员,在编写和调用时有哪些不同

    • 公有成员:可以在外部调用  
    • 私有成员:定义时加‘__’,只能在内部调用  
     
  • 相关阅读:
    奥数视频
    提车应该检查哪?4S店都怕你检查这4个“雷区”,别等后悔才知道
    乒乓球拍子和套胶选择
    2018天津英华国际学校初中报名指南
    水瓶座出生日期是几月几号到几月几号
    乒乓球 世锦赛
    鸡蛋羹要怎么蒸才会更嫩?秘诀在这里
    家庭理财方法:知道这7个定律可以帮你赚更多钱!
    要知道股市有“三底”,估值底、政策底、市场底!
    DbMigration使用方法
  • 原文地址:https://www.cnblogs.com/bilx/p/11382391.html
Copyright © 2020-2023  润新知