面向对象之成员介绍

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了面向对象之成员介绍相关的知识,希望对你有一定的参考价值。

类的成员有:普通字段、普通方法、静态字段、静态方法、类方法

调用方法: self 对象调用obj.f1(), 无self 类调用Foo.f1()

一、.静态字段、普通字段

1、字段调用时,不需要括号

class Faa:
    #静态字段
    country = "China"   #可以当成一个self.country 使用。
    def __init__(self,name):
        #普通字段
        self.n = name
d = Faa("河南")
r1 = d.n
r2 = d.country   #调用字段时不用加括号的。

print(r1,r2)
#河南 China

一、.静态方法、普通方法

1、 静态方法 @staticmethod

class Foo:
    def __init__(self,name,age):
        self.n = name
        self.a = age
    def f1(self):
        ret = "name: %s age: %s"%(self.n,self.a)
        return ret
    @staticmethod
    def f2(a,b,c):
        d = "%s %s %s." % (a,b,c)
        return d

#1. 在类中定义静态方法是要用装饰器@staticmethod
#2. 在调用时 通过类 而非对象,切记。
#3. 静态方法与普通方法的名字不能重复。
obj = Foo("Coob",18)
r1 = obj.f1()
r2 = Foo.f2("ww","xx","aa")
print(r1)
print(r2)

#name: Coob age: 18
#ww xx aa.

三、类方法

1、类方法,就是静态方法加个当前的类名。

2、@classmethod 类方法

3、定义方法时,最后一个参数会自动把当前的类名添加进去。

class Foo:
    def __init__(self,name,age):
        self.n = name
        self.a = age

    @classmethod
    def f1(cls):   #  cls 自动把类名传入
        print("xxx",cls)



#1.需要加装饰器 @classmethod
#2.定义时参数cls 必须要写 cls 即是 当前类名。
Foo.f1()

四、特性

1、通过对象调用函数时不用加括号的。

2、@property

class Foo:
    def __init__(self,name,age):
        self.n = name
        self.a = age

    @property
    def f1(self):
        return "aaa"

obj = Foo("I","ddd")
a = obj.f1
print(a)

#aaa

  

  

  

 

以上是关于面向对象之成员介绍的主要内容,如果未能解决你的问题,请参考以下文章

python基础之面向对象高级编程

Java面向对象 类的成员之代码块的详解

PHP面向对象魔术方法之__call函数

面向对象特性之封装

第2章 面向对象特性之封装

JAVA面向对象编程之购物车界面的设计与功能的实现