我是一个全新的Python新手,我正在尝试学习如何使用类。有人知道这是怎么回事吗?任何有关关键字"self“的额外提示都将不胜感激。
代码:
class Enemy:
life = 3
def attack(self):
print('ouch!')
self.life -= 1
def checkLife(self):
if self.life <= 0:
print('I am dead')
else:
p
在这段代码中:
class Page(Base):
__tablename__ = 'page'
id = Column(Integer, primary_key=True)
name = Column(Text, unique=True)
data = Column(Text)
def __init__(self, name, data):
self.name = name
self.data = data
它是金字塔框架( python框架)中的一个模型,稍后将被SQLAlchemy使用,名称和数据将被初始化两次:
name = Col
这是我的密码:
class LangList(SGMLParser):
is_span = ""
langs = []
def start_span(self, attrs):
for key, value in attrs:
if key == 'class' and value == 'lang':
self.is_span = 1
def end_span(self):
self.is_span = ""
我在GitHub上的一个私有存储库中阅读了一些Python代码,发现了一个类似以下内容的类:
class Point(object):
'''Models a point in 2D space. '''
def __init__(self, x, y):
super(Point, self).__init__()
self.x = x
self.y = y
# some methods
def __repr__(self):
return
这是
我跟踪了许多线程,它们表明问题coid存在于form类的验证器中,但我检查了fo中类的them..heres代码。
1.下面是来自forms.py的代码
from flask_wtf import Form
from wtforms import StringField, SubmitField, BooleanField, PasswordField
from wtforms.validators import DataRequired, Length, email, EqualTo, Required
class RegistrationForm(Form):
usern
编辑:下面是当前的问题:
Traceback (most recent call last): File "figure.py", line 32, in <module> import Python2
File "C:\scripts\python2.py", line 12, in <module> shp = shape.Python1(self.size, self.length, self.breadth,self.height)
NameError: name 'self' is not defined
假设我有以下课程,
class A:
def __init__(self):
print("Class A")
class B(A):
def __init__(self):
print("Class B")
b = B()
具有构造函数继承的预期输出是
Class A
Class B
然而,实际输出是
Class B
这是与生俱来的吗?C++允许构造函数继承。这个设计选择如何区分这两种语言?
注意:我同意在python中可以通过调用super().__init__()函数来实现这一点,但是我想知道选择这种设计
我用这种方式创建了我的类,但是我得到了Non-nullable instance field 'text' must be initialized. Try adding an initializer expression, or add a field initializer in this constructor, or mark it 'late'.,我想知道是否有一种方法可以用'Python‘风格来创建类,谢谢。
class Lexer {
String _text;
int _pos;
String _current_char;
我读过
我试着从这个例子中复制上元类,发现这并不是在所有情况下都有效的:
def upper(cls_name, cls_parents, cls_attr):
""" Make all class attributes uppper case """
attrs = ((name, value) for name, value in cls_attr.items()
我是来自PHP的Python新手,我知道Python有Docstring,但是我如何在类变量上做到这一点呢?假设在PHP中我有:
class Animal {
/**
* @var Noise
*/
public $noise
}
现在我该如何实现这是python呢?类似于:
class Animal:
# Here I want to tell my IDE that this is a noise object, not yet set
self.noise = None
我认为我很清楚在Python中变量和生成器是如何工作的。
然而,下面的代码让我感到困惑。
from __future__ import print_function
class A(object):
x = 4
gen = (x for _ in range(3))
a = A()
print(list(a.gen))
当运行代码(Python 2)时,它说:
追溯(最近一次调用):文件"Untitled 8.py",第10行,打印(列表(a.gen))文件"Untitled 8.py",第6行,in gen = (x for _ in r
我会假设原因类似于我自己get.Why是那里的主人?另外,为什么有时候是master,有时候master = none?
e.g
class Application(tk.Frame):
def __init__(self, master=None):
tk.Frame.__init__(self, master)
self.grid()
self.createWidgets()
摘自Tkinter 8.5 reference: A GUI for Python by John W.Shipman。另外,文档使用python2,而我将使用
令我惊讶的是,我了解到这样的代码实际上是有效的:
class A {
B b;
C c = this->b.GetC();
}
我想我已经习惯于认为this本质上类似于Python中的self。但是,对于我来说,在类级别上,我们声明一个模板,类的每个实例都要对其进行复制,而在“声明”级别,this还不应该存在,这一点也是有意义的。但是,C++总是会感到惊讶,上面的代码似乎很管用。
话虽如此,这种风格不好吗?上面的代码和简单地在A的构造函数中初始化A之间到底有什么区别?
class A {
B b;
C c;
A() {
c = t
我正在尝试使用GitPod中的库。
在文档之后,我导入了imaplib并用以下代码行实例化了IMAP4对象:
M = imaplib.IMAP4()
这将返回以下消息:
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
File "/home/gitpod/.pyenv/versions/3.8.12/lib/python3.8/imaplib.py", line 198, in __init__
self.open(host, p
我对为Python字符串模板设置自定义分隔符感到困惑。我看到了一个教程视频,上面说要使用自定义子类。所以我做了,而且成功了:
from string import Template
class MyTemplate(Template):
delimiter = '#'
d = {'key':'value'}
t = MyTemplate('key is #key')
print(t.substitute(d))
#prints "key is value" as expected
所以我在想,如果我所要做