A股上市公司传智教育(股票代码 003032)旗下技术交流社区北京昌平校区

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

class Province:
    #静态字段,属于类
    country = '中国'
    def __init__(self,name):
        #普通字段,属于对象
        self.name = name


print(Province.country)
# print(Province.name)

shanxi = Province('陕西')
print(shanxi.name)
静态字段是属于类本身的字段,保存在类中,执行可以通过对象访问也可以通过类访问

普通字段只有在创建对象的时候回产生,属于对象的,执行只能通过对象访问

方法:

1,普通方法,保存在类中,由对象调用,self->对象

class Foo:
    def Bar(self):
        print('bar')

obj = Foo()
obj.Bar()
Foo.Bar(obj)
2,静态方法,加一个装饰器@staticmethod,保存在类中,由类直接调用

class Foo:
    @staticmethod
    def sta():
        print('123')

Foo.sta()
3,类方法,保存在类中,由类直接调用,cls->当前类

class Foo:


    @classmethod
    def classMethod(cls):#class缩写
        # cls是类名
        print(cls)
        print('classmethod')

Foo.classMethod()
#####应用场景

如果对象中需要保存一些值,执行某功能时,需要使用对象的值,使用普通方法

不需要任何对象中的值,用静态方法

类方法基本上没什么用处,可以使用静态方法代替



属性标签@property:

class Foo:
    def __init__(self):
        self.name = 'a'

    def bar(self):
        print('bar')

    @property
    def per(self):
        return 1

obj = Foo()
r =obj.per
print(r)


0 个回复

您需要登录后才可以回帖 登录 | 加入黑马