栏目分类:
子分类:
返回
终身学习网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
终身学习网 > IT > 软件开发 > 后端开发 > Python

python学习记录22.8.5

Python 更新时间:发布时间: 百科书网 趣学号

关于类对象、实例对象、类方法、实例方法、类属性、实例属性、静态方法

class province():

    country='China'

    def __init__(self,name,m):

        self.name=name

        self.economy=m

x=province("shanxi",None)

print(x.name)

x.country='us'

x.name='jiujinshan'

x.economy='well'

print(x.name,x.country,x.economy)

输出结果为shanxi
jiujinshan us well

总结:province是一个类对象,可理解为一个模板,而x作为一个实例对象。country是类属性,而name,economy都是实例属性。

在一个类中,最外层定义的方法是实例方法,在实例方法中,可以用实例名调用实例变量和实例中的类变量,也可以用类名调用类变量(ok方法中的内容),实例对象可以调用实例方法,而类对象不可以调用实例方法,即province.ok()是不成立的

class province():

    country='China'

    def __init__(self,name,m):

       self.name=name

       self.economy=m

    def ok(self):

        print(self.economy)

        print(self.country)

        print(self.name)

        print(province.country)

x=province("shanxi",None)

print(x.name)

x.country='us'

x.name='jiujinshan'

x.economy='well'

x.ok()

在类中加@classmethod定义的是类方法,在类方法中,用cls代替类对象,调用类变量。

class province():

    country='China'

    def __init__(self,name,m):

       self.name=name

       self.economy=m

    def ok(self):

        print(self.economy)

        print(self.country)

        print(self.name)

        print(province.country)

    @classmethod

    def leifangfa(cls):

        print(cls.country)

province.leifangfa()

   

x=province(None,None)

x.country='USA'

x.leifangfa()

而输出是两个china。

在类方法中,加入实例对象,不仅可以访问类变量,还可以访问实例变量

class province():

    country='China'

    def __init__(self,name,m):

       self.name=name

       self.economy=m

    def ok(self):

        print(self.economy)

        print(self.country)

        print(self.name)

        print(province.country)

    @classmethod

    def leifangfa(cls,x):

        print(cls.country,x.country,x.name)

x=province(None,None)

x.country='USA'    

x.leifangfa(x)

输出结果为

China USA None

如果需要在静态方法中使用类变量的话,直接调用(province.country)即可,如果需要使用实例变量,传入实例对象的指针即可

综上进行一个小总结,即实例方法只能用实例对象调用,其他两个方法类和对象都能调用,且三个方法都能实现对类变量和实例变量的调用

转载请注明:文章转载自 www.051e.com
本文地址:http://www.051e.com/it/1034009.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 ©2023-2025 051e.com

ICP备案号:京ICP备12030808号