类的属性类的方法类的内置方法

author author     2022-10-09     655

关键词:

类的属性

变量在类中称为类的属性,函数在类中称为类的方法,类的属性分为以下几种:

(1) 公有属性:在类中和类外都能调用的属性,定义的时候与变量的定义一致,如 color = ‘yellow‘
(2) 私有属性:不能在类外及被类以外的函数调用,定义的时候以双下划线开头,如__color = ‘yellow‘

(3) 内置属性: 由系统在定义类的时候默认添加的,定义的时候以前后双下划线构成,如 dict

#!/usr/bin/env python
class People(object):
    color = ‘yellow‘         # 定义类的公有属性

    __age = 30               # 定义类的私有属性

    def think(self):
        print self.__age     # 只能在类里面调用私有属性

ren = People()
print ren.color              # 可以在类外面调用公有属性
ren.think()
print ren.__dict__           # 系统已经定义好了内置属性,可以直接调用

类的方法

变量在类中称为类的属性,函数在类中称为类的方法,类的方法分为以下几种:

(1) 公有方法:在类中和类外都能调用的方法
(2) 私有方法:只能在类里面被调用,不能被类的外部调用,定义的时候要在前面加上双下划线,如 def __think()

(3) 类方法:能被类直接调用的方法称为类方法,但要通过 classmethod() 函数处理后才能被类直接调用
(4) 静态方法:静态方法相当于全局函数,可以被类直接调用,但要通过 staticmethod() 处理后才能被直接调用,注意静态方法没有 self 参数

实例:

#!/usr/bin/env python

class People(object):
    color = ‘yellow‘
    __age = 30
    def __talk(self):         # 定义私有方法,需要在前面添加双下划线
        print "I am talking with Tom"
    def test(self):           # 定义公有方法,方法的定义和函数一样,但是需要 self 作为第一个参数,表示执行对象本身
        self.__talk()         # 在类的内部调用私有方法

jack = People()
jack.test()
#!/usr/bin/env python

class People(object):
    color = ‘yellow‘
    __age = 30

    def test(self):               # 定义公有方法
        print "Testing......"

    cm = classmethod(test)        # 通过 classmethod 函数转换成类方法

jack = People()
People.cm()                       # 公有方法是不可以通过类直接调用的,只能通过对象来调用,但转换成类方法之后,就可以通过类直接调用
#!/usr/bin/env python

class People(object):
    color = ‘yellow‘
    __age = 30

    def test():                   # 在类中定义方法如果没有加 self 参数只能称其为函数
        print "Testing......"

    sm = staticmethod(test)       # 通过 staticmethod 函数转换成静态方法

jack = People()
People.sm()                       # 静态方法可以通过类直接调用

类的内置方法

所谓内部类,就是在类的内部定义的类,主要的目的是为了更好的抽象现实世界

#!/usr/bin/env python

class People(object):
    color = ‘yellow‘
    __age = 30

    class Chinese(object):        # 定义内部类
        print "I am chinese"

jack = People.Chinese()           # 可以通过外部类调用内部类然后再实例化一个对象
#!/usr/bin/env python

class People(object):
    color = ‘yellow‘
    __age = 30

    class Chinese(object):        # 定义内部类
        print "I am chinese"

ren = People()                    # 可以先实例化外部类
jack = ren.Chinese()              # 再通过对象实例化内部类

是否有 Python 方法可以访问类的所有非私有和非内置属性?

】是否有Python方法可以访问类的所有非私有和非内置属性?【英文标题】:IsthereaPythonmethodtoaccessallnon-privateandnon-builtinattributesofaclass?【发布时间】:2013-06-0903:07:50【问题描述】:我想调用一个方法来给我一个包含所有“非私有”... 查看详情

类的内置方法__

...名字,是不同的,这个是有自己的作用域的,当你继承父类的时候,是不可以调用父类里面的这个方法的,继承:当子类没有这个方法或者属性的时候,就去父类里面找,__函数名字 继承的用法:例子1:classA():  def__edit(se... 查看详情

27反射类的内置方法

一、反射1、什么是反射?  用字符串类型的名字去操作变量2、反射对象中的属性和方法  getattrhasattrsetattrdelettr3、 getattr:通过字符串类型的名字取到变量的值  hasattr:判断字符串类型的名字对应的值是否存在  set... 查看详情

python基础类的特殊成员(类的特殊内置属性和方法)(代码片段)

...特殊方法,一般是系统定义名字,类似__init__()之类的。_foo:以单下划线开头的表示的是protected类型的变量,即保护类型只能允许其本身与子类进行访问,不能用于frommoduleimport*__foo:双下划线的表示的是私有类型(priv... 查看详情

classmethodstaticclassmethod内置装饰器函数(代码片段)

...的意思#classmethod类方法#当一个类中的方法中只涉及操作类的静态属性时,此时在逻辑上,我们想要直接通过类名就可以调用这个方法去修改类的静态属性,此时可以用这个内置装饰器函数#staticmethod静态方法#类的方法classmethodclas... 查看详情

类的内置方法(代码片段)

isinistance(obj,cls)检查obj是否是类cls的对象classFoo(object):passobj=Foo()print(isinstance(obj,Foo))issubclass(sub,super)检查sub类是否是super类的派生类classFoo(object):passclassBar(Foo):passprint(issubclass(Bar,Foo))__se 查看详情

python中,类的特殊方法与内置函数的关联(代码片段)

目录Python类Python类的设计原则特殊方法【Specialmethods】Ducktyping内置函数EnglishVersionThekeydesignprinciplesforPythonclassesSpecialmethodsbuilt-infunctionsPython类Python类的设计原则封装(Encapsulation):Python类被设计用来将相关数据和行为封装到一个... 查看详情

几个类的内置方法(代码片段)

#类的内置方法#双下方法#__str__#当类中定义了__str__方法后,print(这个类对象时),会调用__str__.或者格式化%s输出对象时,都会触发__str__#__repr__#当类中定义了__repr__方法后,print(repr(a)),就会调用a对象中的__repr__()方法。格式化输出... 查看详情

子类是不是具有父类的所有属性和方法? [复制]

】子类是不是具有父类的所有属性和方法?[复制]【英文标题】:Dosubclasseshaveallthepropertiesandmethodsoftheparentclass?[duplicate]子类是否具有父类的所有属性和方法?[复制]【发布时间】:2017-05-1601:13:33【问题描述】:子类是否拥有父类... 查看详情

用类的内置方法实现类型检查(代码片段)

1.利用重写__setattr__来实现。importlogginglogger=logging.getLogger(‘logger‘)streamhandler=logging.StreamHandler()logger.setLevel(logging.DEBUG)streamhandler.setLevel(logging.DEBUG)streamhandler.setFormatter(l 查看详情

类的特殊成员

1、__doc__,表示类的描述信息执行结果:2、__module__,表示当前操作的对象在哪个模块,__class__,表示当前操作的对象的类是什么看一下输出结果:3、__call__,创建对象的时候是使用:对象=类名();而对于__call__方法的执行是由对... 查看详情

类的静态属性类的方法静态方法(代码片段)

一.类的静态属性即是将类的函数属性,封装成类似数据属性。比如:类方法函数的返回值获取。通过:@proportyclassWho(object):what=‘what‘#brother=‘jack‘def__init__(self,name,age,gender):self.name=nameself.age=ageself.gender=genderdefinformation(self):print... 查看详情

类的基础(代码片段)

类的组成面向对象是一种编程思想,而Java的设计则很好的诠释了这一概念一个类由属性、方法两部分组成类变量:类本身具有的属性类方法:类本身具有的方法实例变量:类的对象具有的属性实例方法:类的对象具有的方法类... 查看详情

类的内置方法

自定制格式化字符串__format____str__ , __repr__(优先使用,覆盖面广)改变对象的字符串显示__str__,__repr__classA:passa=A()print(a)#<__main__.Aobjectat0x0000000001DD1D68>内存地址自己找不到到父类找l=list()print(l)#[]为什么打出来长上面的不... 查看详情

没有类的属性方法[重复]

】没有类的属性方法[重复]【英文标题】:Propertymethodwithoutclass[duplicate]【发布时间】:2013-06-0503:57:06【问题描述】:我有下一个代码global_variable=1@propertydefmethod():#Somemagic,forexample#incrementingglobalvariableglobalglobal_variableglobal_variable+= 查看详情

类的声明只能有属性和方法(属性没有括号,方法有括号)

<?phpclassConnection{//声明类的属性//ip地址public$host=‘127.0.0.1‘;//用户名public$username=‘root‘;//密码public$password=‘123456‘;//数据库名public$dbname=‘aa‘;//字符集public$charset=‘utf8‘;//声明类的方法publicfunctionconnect 查看详情

类的属性方法

静态方法:@staticmethod装饰器可以把一个方法变成静态方法。静态方法既不能访问公有属性,也不能访问实例属性.这样的话,其实跟类已经没什么关系了。它与类唯一的关联就是需要通过类名来调用这个方法1classPerison(object):23def_... 查看详情

面向对象的进阶---反射--一些内置方法

反射反射和一些类的内置方法1isinstance----issubclasstype()--判断是不是ininstance(object,cls)判断是不是类的对象如果这个类有父类这个对象也是这个父类的对象issubclaaa(cls,cls)判断一个类是不是另一个类的子类=============================反射... 查看详情