字段 | 方法 | 属性 | 类的成员 | Python

# ----------------------------------------- 字段
class Class:
    # 静态字段,属于类
    # 已经创建,并且存放在类里,而不是每创建一个对象创建一次;
    country = ‘中国‘

    def __init__(self, name):
        # 普通字段-->> 保存在创建的对象里
        self.name = name

    # 普通方法-->> 保存在类里
    def show(self):
        print(self.name)

# 实例化对象

obj = Class(‘Mic‘)
print(obj.name)
obj.show()

# 通过类对象获取静态字段
print(Class.country)
# print(Class.name) # 普通字段存放在对象中,无法通过类访问;

# 对象可以通过类对象指针(引用)访问到静态属性
print(obj.country)
# ------------------------------ 方法
class MethodTest():
    # 普通方法
    def test1(self):  # self指创建的对象
        print(‘run-------1‘)

    # 静态方法
    @staticmethod
    def test2():  # 这个时候self就不是必须的,当然你要是写了,就需要传入一个参数
        print(‘run-------2‘)

    # 类方法
    @classmethod
    def test3(cls):  # 这里传入的cls参数是python自动传入的类名
        print(cls)
        print(‘run-------3‘)

# ----------------- 调用普通方法
# 1.创建一个对象,通过对象间接访问类中的普通方法
obj = MethodTest()
obj.test1()

# 2.通过来直接访问普通方法,但是前提是先创建一个对象
# 因为普通方法第一个参数self就代指创建的对象
MethodTest.test1(obj)

# ------------------ 调用静态方法
# 类直接调用,类似于写了一个函数,毕竟创建一个对象会占用内容
MethodTest.test2()

# ---------------- 调用类方法
MethodTest.test3()

# 分别什么时候使用?
# 1.我们需要用到对象中的值,就使用普通方法;
# 2.如果不需要任何对象中的值,就使用静态方法;
# 3.其实,如果需要在静态方法中用到类名,作为参数传入就相当于类方法;
#   就是说,类方法完全可以通过静态方法构造出来
#   而且很少需要在方法中用到类名,所以没必要使用类方法
# ------------------------------属性
class Attr():
    @property
    def test4(self):
        print(‘run-------4‘)
        return ‘run4‘

    @test4.setter
    def test4(self, param):
        print(param)

    @test4.deleter
    def test4(self):
        print(‘delete------4‘)

obj = Attr()
# obj.test4()  # 报错
obj.test4
print(obj.test4)

# 赋值
obj.test4 = ‘change_val‘
# print(obj.test4)  # 报错

# 如果一定要赋值呢?
print(obj.test4)

# 删除
del obj.test4
# >>> 其实并没有对这个字段进行修改,
# 只是通过这样的操作,执行对应装饰器下的方法;
# 就是一个对应关系;
# ----------------- 用property装饰器,完成分页效果
class Paginator(object):
    def __init__(self, current_page):
        try:
            p = int(current_page)
        except Exception as e:
            p =1

        self.page = p

    @property
    def start(self):
        val = (self.page-1) * 10
        return val

    @property
    def end(self):
        val = self.page*10
        return val

a = list()
for i in range(1000):
    a.append(i)

while True:
    p = input(‘请输入查看的页面:‘)
    obj = Paginator(p)
    print(a[obj.start:obj.end])
# --------------------------- 用property()完成上面的效果

class ClassFunc():
    def test1(self):
        return ‘Mic‘

    def test2(self, param):
        print(param)

    def test3(self):
        print(‘del‘)

    per = property(fget=test1, fset=test2, fdel=test3)

obj = ClassFunc()
# 1.调用方法
# ret = obj.per
# print(ret)

# 2.赋值
# obj.per = ‘Mic‘

# 3.删除
del obj.per
时间: 2024-10-11 20:01:54

字段 | 方法 | 属性 | 类的成员 | Python的相关文章

Python类中的字段,方法,属性区别及StaticMethod, Property

类包含下列 静态属性 动态属性 静态方法 动态方法 class Province: #静态字段--属于类,调用方法类.字段名 memo = "中国23个省之一" #动态字段--属于对象,调用方式实例化对象.字段名 def __init__(self, name, capital, leader): self.Name = name self.Capital = capital self.Leader = leader #动态方法--属于对象 def sports_game(self):

[.net 面向对象编程基础] (9) 类的成员(字段、属性、方法)

[.net 面向对象编程基础] (9) 类的成员(字段.属性.方法) 前面定义的Person的类,里面的成员包括:字段.属性.方法.事件等,此外,前面说的嵌套类也是类的成员. a.类的成员为分:静态成员(static)和非静态成员 b.静态成员用static标识,不标识则默认为非静态成员 c.静态成员属于类所有,动态成员则属于实例所有,即对象 d.静态成员为类所有实例共享,无论类有多少实例或副本,静态成员只占用存中一块区域.非静态成员则在类的每个实例,都创建一个内存域. 下面主要说明一下类的主要

类的成员和嵌套(建模)

一. 类的成员共分为三类: 字段, 方法, 属性 class Foo: country = '中国' # 静态字段 def __init__(self, name): self.name = name # 普通字段 def func(self): # 普通方法, 至少有一个self参数 pass @staticmethod # 静态方法, 无默认参数 def func2(): pass @classmethod # 类方法, 至少有一个cls参数 def func3(cls): pass @pr

Python全栈--9.1--面向对象进阶-super 类对象成员--类属性- 私有属性 查找源码类对象步骤 类特殊成员 isinstance issubclass 异常处理

上一篇文章介绍了面向对象基本知识: 面向对象是一种编程方式,此编程方式的实现是基于对 类 和 对象 的使用 类 是一个模板,模板中包装了多个“函数”供使用(可以讲多函数中公用的变量封装到对象中) 对象,根据模板创建的实例(即:对象),实例用于调用被包装在类中的函数 面向对象三大特性:封装.继承和多态 本篇将详细介绍Python 类的成员.成员修饰符.类的特殊成员. 注意点: self ,我们讲过了,self = 对象,实例化后的对象调用类的各种成员的时候的self就是这个对象. 而且我们也讲过了

C#中的类:字段、属性、方法

C++的类中可以有三种内容:成员变量.成员函数和友元. 一般来说,成员变量描述类的属性,成员函数描述类的操作,友元则是一种特殊的声明,被声明为友元的函数或类可以操作自己的私有成员变量和成员方法. 在Java中,类的成员有两类:属性,相当于C++的成员变量:方法,相当于C++的成员函数. 而在C#中,类的成员有四种:字段.属性.方法和事件(事件还没学到,暂缓解释). 字段相当于C++中的成员变量和Java中的属性,就是在类中定义的变量(可以是基本类型或引用类型),一般来说,字段都被定义为私有. 方

C#反射类中所有字段,属性,方法(转)

可能大家都知道在C#中如何创建一个类,但对于类的结构可能大家不一定了解的很清楚,对于我来说,我之前也搞的不是很明白,今天,当我没事研究反射的时候突然发现了着一点. 我们来看类的结构到底是什么 public class People //类名 { private static string name; //字段 private string sex;//字段 public string Sex //属性 { get { return sex; } set { sex = value; } } pu

14.7类的成员:字段,方法

类的成员:字段和方法br/>在Python中,字段和方法都叫成员类成员:字段:1.普通字段,保存在对象中,执行只能通过对象访问.2.静态字段,保存在类中,执行可以通过类或者对象访问,内存中只保留一份.方法:1.普通方法保存在类中,由对象调用,self指对象.2.静态方法,@staticmethod,保存在类中,self颜色变黑,不用必须写self参数,用类直接调用,相当去直接写一个函数.3.类方法,@classmethod,保存在类中,潜规则,参数写成cls(class),cls指类,用类直接调

PHP 如何定义类、成员属性及其操作与魔术方法

PHP 类的定义与属性 一.类的定义类的关键字定义使用 class :例:class test{ } 二.类的属性与方法 class test{ $name = 'LH' ; //成员属性........ //成员方法........public function t1(){ } }三.定义一个不能继承的类 final class test{ }//final关键字只能修饰类和方法.不能用来修饰成员属性! 四.类.成员属性及方法的声明 1.public //公用的 表示全局的,类内部外部子类都可

Python的实例定属性和方法或类绑定方法

一.给实例对象绑定属性和方法:1.给实例绑定属性:先定义一个Student类 #!/usr/bin/python class Student(object): pass 然后绑定属性: s = Student() s.name = 'AAA' # 动态给实例绑定一个属性 print(s.name)#输出AAA 2.给实例绑定方法:先定义一个方法 def add(self,a,b): self.a = a self.b = b return self.a +self.b 然后绑定方法: Metho