我有一个像这样的课程:
class MyClass:
Foo = 1
Bar = 2
每当调用MyClass.Foo
或时MyClass.Bar
,我需要在返回值之前调用自定义方法。Python可能吗?我知道创建类的实例并定义自己的__getattr__
方法是可能的。但是我的scnenario涉及这样使用此类而不创建任何实例。
我还需要__str__
在调用时str(MyClass.Foo)
调用自定义方法。Python是否提供这种选项?
__getattr__()
并且__str__()
对象可以在其类上找到,因此,如果要为类自定义这些内容,则需要一个类。元类。
class FooType(type):
def _foo_func(cls):
return 'foo!'
def _bar_func(cls):
return 'bar!'
def __getattr__(cls, key):
if key == 'Foo':
return cls._foo_func()
elif key == 'Bar':
return cls._bar_func()
raise AttributeError(key)
def __str__(cls):
return 'custom str for %s' % (cls.__name__,)
class MyClass:
__metaclass__ = FooType
# in python 3:
# class MyClass(metaclass=FooType):
# pass
print MyClass.Foo
print MyClass.Bar
print str(MyClass)
印刷:
foo!
bar!
custom str for MyClass
不,对象不能截取对其属性之一进行字符串化的请求。为属性返回的对象必须定义自己的__str__()
行为。
问题内容: Python中是否可以有静态类变量或方法?为此需要什么语法? 问题答案: 在类定义内声明但在方法内声明的变量是类或静态变量: 正如@ millerdev指出的那样,这将创建一个类级别的i变量,但这不同于任何实例级别的i变量,因此你可以 这与C ++和Java不同,但与C#并没有太大区别,在C#中,无法使用对实例的引用来访问静态成员。
本文向大家介绍python类和函数中使用静态变量的方法,包括了python类和函数中使用静态变量的方法的使用技巧和注意事项,需要的朋友参考一下 本文实例讲述了python类和函数中使用静态变量的方法。分享给大家供大家参考。具体分析如下: 在python的类和函数(包括λ方法)中使用静态变量似乎是件不可能[Nothing is impossible]的事, 但总有解决的办法,下面通过实现一个类或函数
rank ▲ ✰ vote url 26 568 149 609 url 类里的静态变量 有可能在python中类有静态变量或方法?用什么语法实现? 变量是在类定义时声明的,不是在类方法或静态变量中: >>> class MyClass: ... i = 3 ... >>> MyClass.i 3 上面的"i"变量是类级别的,所以它是和所有实体级的"i"变量是不一样的,你可以: >>>
问题内容: 如果我有以下python代码: 它抱怨 如何在方法中访问类/静态变量? 问题答案: 代替使用或。分配给将创建一个静态变量,分配给将创建一个实例变量。
如果我在java类X中不使用任何setter/getter。当一个线程a具有类X的类级锁时,另一个线程B是否可以直接更改我的静态变量?? 假设线程A现在有类级锁。我可以从另一个线程B执行X.static\u variable=11吗? 我正在编写一段代码,以在java中获得死锁。 公共类A实现Runnable{ } } 公共类B实现Runnable{ } 但得到以下结果: 第二个有对象b的钥匙和等
本文向大家介绍C++之类的静态变量,包括了C++之类的静态变量的使用技巧和注意事项,需要的朋友参考一下 成员变量 通过对象名能够访问public成员变量 每个对象都可以有只属于自己的成员变量 成员变量不能在对象之间共享 类的静态成员 静态成员变量 存储在 全局数据区 以上所述就是本文的全部内容了,希望大家能够喜欢。