首页 > 编程语言 > 详细

python学习——面向对象成员

时间:2019-08-20 14:46:06      阅读:104      评论:0      收藏:0      [点我收藏+]

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.面向对象公有和私有成员,在编写和调用时有哪些不同

  • 公有成员:可以在外部调用  
  • 私有成员:定义时加‘__’,只能在内部调用  
 

 

python学习——面向对象成员

原文:https://www.cnblogs.com/bilx/p/11382391.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!