黑马程序员技术交流社区

标题: 【西安校区】 Python中普通字段和静态字段 [打印本页]

作者: 逆风TO    时间: 2019-10-15 15:30
标题: 【西安校区】 Python中普通字段和静态字段
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)







欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/) 黑马程序员IT技术论坛 X3.2