[Maya Python] Zerquetsche den Inhalt des Skripts 1 ~ Camera Speed Editor

Zweck dieses Artikels

Vertiefen Sie Ihr Verständnis, während Sie den Inhalt Ihrer eigenen Werkzeuge einzeln überprüfen, und verwenden Sie sie für die zukünftige Werkzeugentwicklung. Verstehe gründlich, dass ich durchgemacht habe, weil ich bis jetzt mit Kopieren und Einfügen gearbeitet habe. Ich schreibe ein Skript auf die gleiche Weise und es funktioniert irgendwie, also hoffe ich, dass es Menschen hilft, die am Ende mit.

Werkzeugübersicht

Verlangsamt die Bewegungsgeschwindigkeit der Kamera in Maya und ermöglicht die Feineinstellung der Kamera. Maya-Kameras bewegen sich manchmal etwas schneller, was bei heikler Kameraarbeit etwas ärgerlich sein kann. Normalerweise wird es mit den Werkzeugeinstellungen angepasst, aber es ist schwierig zu verwenden, da es Einstellungen für jedes Kamerawerkzeug gibt, also habe ich es vereinheitlicht. Drehen Sie das Einstellrad nach links, um die Geschwindigkeit zu verlangsamen, und drehen Sie es nach rechts, um die Geschwindigkeit zu erhöhen. Sie können zwischen den Kamera-Tools wechseln.

cameraSpeedEditor.gif

** Betriebsumgebung: Maya2019.3, Maya2020.1 ** Da ich Pyside2 verwende, wird es nicht vor 2016 funktionieren.

Vollständiger Code

cameraSpeedEditor.py


# -*- coding: utf-8 -*-
from maya.app.general.mayaMixin import MayaQWidgetBaseMixin
from PySide2 import QtWidgets
from PySide2.QtCore import Qt
from maya import cmds

class Widget(QtWidgets.QWidget):
    def __init__(self):
        #Rufen Sie die übergeordnete Methode auf
        super(Widget, self).__init__()

        #Rasterlayout platzieren
        layout = QtWidgets.QGridLayout(self)

        #Beschreibungsetikett
        labelWidget = QtWidgets.QLabel(u'Passen Sie die Geschwindigkeit der Kamera an\n\n ← langsame Einstellung der Kamerageschwindigkeit →')
        labelWidget.setAlignment(Qt.AlignCenter)
        layout.addWidget(labelWidget,0,0,1,-1)

        #Widget wählen
        self.camDial = QtWidgets.QDial()
        self.camDial.setRange(0, 100)
        self.camDial.setValue(50)
        self.camDial.setNotchesVisible(True)
        self.camDial.sliderReleased.connect(self.setCamSpeed)
        layout.addWidget(self.camDial,1,0,1,-1)

        #Überprüfen Sie den Super-Slow-Modus
        self.checkWidget = QtWidgets.QCheckBox(u'Super langsam')
        self.checkWidget.setChecked(False)
        self.checkWidget.stateChanged.connect(self.setCamSpeed)
        layout.addWidget(self.checkWidget,2,0)

        #Kombinationsfeld für das Kamera-Tool
        setCamLabel = QtWidgets.QLabel('set Camera tool:')
        setCamLabel.setAlignment(Qt.AlignRight)
        layout.addWidget(setCamLabel,3,0)
        selCamItem = QtWidgets.QComboBox(self)
        selCamItem.addItem('tumble')
        selCamItem.addItem('track')
        selCamItem.addItem('dolly')
        selCamItem.addItem('boxZoomSuper')
        selCamItem.addItem('roll')
        selCamItem.addItem('yawPitch')
        selCamItem.activated[str].connect(self.setTool)
        layout.addWidget(selCamItem,3,1)

        #Reset-Knopf
        resetButton = QtWidgets.QPushButton(u'zurücksetzen')
        resetButton.clicked.connect(self.resetCamSpeed)
        layout.addWidget(resetButton,4,0,1,-1)

    #Kamerageschwindigkeit eingestellt
    def setCamSpeed(self):
        #Geschwindigkeitszahlen berechnen
        value = float(self.camDial.value()) **3*0.0000072+0.1
        if self.checkWidget.isChecked():
            value = value /10

        #Stellen Sie den berechneten Wert ein
        cmds.tumbleCtx( 'tumbleContext'             ,e=True ,ts=value)
        cmds.trackCtx(  'trackContext'              ,e=True ,ts=value)
        cmds.dollyCtx(  'dollyContext'              ,e=True ,s =value)
        cmds.boxZoomCtx('boxZoomContext'            ,e=True ,zs=value)
        cmds.rollCtx(   'rollContext'               ,e=True ,rs=value)
        cmds.orbitCtx(  'azimuthElevationContext'   ,e=True ,orbitScale=value)
        cmds.orbitCtx(  'yawPitchContext'           ,e=True ,orbitScale=value)

        #Zeigen Sie, was Sie eingestellt haben
        print ( '# Camera speed is '+str(value)+' !\n'),

    #Kamera-Toolset
    def setTool(self, selectTool):
        cmds.setToolTo('%sContext' %(selectTool))
        print ( 'Set %s Tool !\n' %(selectTool)),

    #Kamerageschwindigkeit zurückgesetzt
    def resetCamSpeed(self):
        #Setzen Sie den Wert jeder Kamera auf den Standardwert zurück
        cmds.tumbleCtx( 'tumbleContext'             ,e=True ,ts=1)
        cmds.trackCtx(  'trackContext'              ,e=True ,ts=1)
        cmds.dollyCtx(  'dollyContext'              ,e=True ,s =1)
        cmds.boxZoomCtx('boxZoomContext'            ,e=True ,zs=1) 
        cmds.rollCtx(   'rollContext'               ,e=True ,rs=1)
        cmds.orbitCtx(  'azimuthElevationContext'   ,e=True ,orbitScale=1)
        cmds.orbitCtx(  'yawPitchContext'           ,e=True ,orbitScale=1)
        self.camDial.setValue(50)
        self.checkWidget.setChecked(False)
        print ( '# Camera speed is Default !\n'),


class MainWindow(MayaQWidgetBaseMixin, QtWidgets.QMainWindow):
    def __init__(self):
        #Rufen Sie die übergeordnete Methode auf
        super(MainWindow, self).__init__()

        #Geben Sie den Namen und die Größe des Fensters an
        self.setWindowTitle('Camera Speed editor')
        self.resize(200, 250)

        #Instanz-Widget und im Fenster platzieren
        widget = Widget()
        self.setCentralWidget(widget)

    def closeEvent(self, event):
        #Führen Sie bei geschlossenem Fenster ein Zurücksetzen der Kamerageschwindigkeit durch
        widget = Widget()
        widget.resetCamSpeed()


def main():
    #Anzeigefenster
    window = MainWindow()
    window.show()

#Verarbeitung beim Aufruf von main
if __name__ == "__main__":
    main()
	

Lassen Sie uns die Details sehen

Von hier aus möchte ich erklären, wie jeder Code von Anfang an funktioniert, während ich mich selbst verstehe.

Schreiben Sie es unbedingt in Ihren Kopf

# -*- coding: utf-8 -*-

Wenn Sie im Code Japanisch verwenden, sollten Sie es eingeben. Siehe hier für Details. In Python3 scheint es eher veraltet zu sein. Maya ist immer noch 2.7, also werde ich es für alle Fälle hinzufügen.

Name des Zeichencodes "Are" am Anfang des Satzes in Python (so etwas wie UTF-8)

Bibliothek importieren

from maya.app.general.mayaMixin import MayaQWidgetBaseMixin
from PySide2 import QtWidgets
from PySide2.QtCore import Qt
from maya import cmds

Importieren Sie jede zu verwendende Bibliothek. Python hat viele Bibliotheken, so dass Sie verschiedene Dinge tun können, indem Sie es verwenden. Ich denke, es ist einer der Vorteile der Verwendung von Python anstelle von MEL.

from 〇〇 import △△ bedeutet, △△ in 〇〇 zu bringen. Die Funktion jeder Bibliothek. ** MayaQWidgetBaseMixin **: Wird verwendet, um die Eltern-Kind-Beziehung des Fensters festzulegen ** QtWidgets, Qt **: PySide, UI-bezogene Funktionen ** cmds **: Maya-Befehl

Die 4. Zeile "von Maya Import Cmds" ist eine Referenz von Maya, Es wird als "import maya.cmds as cmds" beschrieben. Ich mache das, weil es schöner ist, sie alle zu haben. Was Sie tun, ist wahrscheinlich das gleiche.

Einführung in Python-Module und Importe aus

Widget-Einstellungen

class Widget(QtWidgets.QWidget):
    def __init__(self):
        #Rufen Sie die übergeordnete Methode auf
        super(Widget, self).__init__()

        ...

class。 Die Erklärung der Klasse ist hier gebrochen. Bitte verstehe es im Buch, da es kompliziert ist. Der Ort, an dem ich am meisten gestolpert bin, als ich Python gemacht habe. Ich frage mich, ob ich mich daran gewöhnen sollte, während ich es benutze.

Ich dachte auch, dass ich mich selbst studiere, Es wird empfohlen, das Buch zu lesen, da nur Online-Artikel beschränkt sind. Persönlich [Einführung in O'Reilly Japan Python3](https://www.amazon.co.jp/%E5%85%A5%E9%96%80-Python-3-Bill-Lubanovic/dp/4873117380/ref = sr_1_1? __ mk_ja_JP =% E3% 82% AB% E3% 82% BF% E3% 82% AB% E3% 83% 8A & dchild = 1 & keywords =% E5% 85% A5% E9% 96% 80python3 & qid = 1598490946 & sr = 8-1 ) Ist sehr leicht zu verstehen. Ich lese immer noch. Ich denke, es ist für Anfänger bis Fortgeschrittene.

[Einführung in O'Reilly Japan Python3](https://www.amazon.co.jp/%E5%85%A5%E9%96%80-Python-3-Bill-Lubanovic/dp/4873117380/ref=sr_1_1? __mk_ja_JP =% E3% 82% AB% E3% 82% BF% E3% 82% AB% E3% 83% 8A & dchild = 1 & keywords =% E5% 85% A5% E9% 96% 80python3 & qid = 1598490946 & sr = 8-1) [Abbildung] Was ist Objektorientierung? (Bedeutung der Klassenmethodeninstanz)

Schauen wir uns jede Zeile an

class Widget(QtWidgets.QWidget):

Inerit ** QtWidgets.QWidget ** aus der Bibliothek in ** Widget ** importiert. Es ist so, als würden Sie sich darauf vorbereiten, die Basis von PySide2 für sich selbst anzupassen.

    def __init__(self):

__init__ Spezielle Methode. Initialisieren Sie den Teil, der beim Erstellen der Instanz zuerst aufgerufen wird. Sie werden es am häufigsten sehen, wenn Sie sich den Code der Klasse ansehen.

self Erstes Argument. Es funktioniert für andere als für sich selbst, aber gemäß Konvention wird immer ** self ** verwendet. Diese Regeln sind im Dokument *** PEP 8 *** zusammengefasst. Wenn Sie selbst online lernen, können Sie diese Regeln möglicherweise nicht erreichen und Ihre eigenen Regeln erstellen (Selbstdisziplin).

Python selbst und init verstehen Was ist Python selbst? Erläuterung der Verwendung und Vorsichtsmaßnahmen Grundlegendes zu [Python-Codierungsstandards] PEP8

        #Rufen Sie die übergeordnete Methode auf
        super(Widget, self).__init__()

Eine weitere verwirrende Beschreibung. Ich habe es zuerst nicht verstanden, aber es ist nichts, wenn ich es verstehe. Erben Sie ** QtWidgets.QWidget ** an ** Widget **, Wenn Sie eine Initialisierungsmethode mit __init__ erstellen, wird die Initialisierungsmethode des übergeordneten Elements (QtWidgets.QWidget) nicht aufgerufen. Geben Sie diese Beschreibung ein und rufen Sie die übergeordnete Initialisierungsmethode auf. Übrigens war diese Beschreibung in der Python2-Serie notwendig, aber in 3 Serien ist super () .__ init __ () gut. einfach. Ich frage mich, wann Maya zu 3 Serien wechseln wird. ..

[Python] Klassenvererbung (super) Verwendung der Super () - Funktion von Python

Ich habe versucht, die Bewegung bisher zu veranschaulichen

Um besser zu verstehen, was die Klasse tut, wollen wir veranschaulichen, was los ist. cameraSpeedEditor__class.jpg 2. Importieren Sie PySide2.QtWidgets aus 7. Erben Sie das importierte QtWidgets QWidget mit dem Namen Widget 8. Erstellen Sie eine Initialisierungsmethode mit der Widget-Klasse 10. Rufen Sie die Initialisierungsmethode des importierten QtWidgets.QWidget auf 13 oder höher Erstellen Sie ein UI-Layout und Funktionen

Da es immer noch viele Charaktere gibt, habe ich eine einfache Illustration gemacht. class_explain.jpg Auf diese Weise können Sie eine (mit Maya vertraute) Instanzkopie der ursprünglichen Entwurfszeichnung erstellen und die Arme, Beine und Farben überschreiben (überschreiben), um die gewünschte Form zu erhalten. Wenn Sie es also mit "init" überschreiben, wird das Original "init" nicht aufgerufen, daher benötigen Sie "super".

Erstellen einer Benutzeroberfläche

Nun, die Erklärung der Klasse ist lang geworden, aber ich werde von nun an endlich die Benutzeroberfläche erstellen.

        #Rasterlayout platzieren
        layout = QtWidgets.QGridLayout(self)

Erstellen Sie QGridLayout. Schaltflächen und Beschriftungen werden in diesem Rasterlayout platziert.

        #Beschreibungsetikett
        labelWidget = QtWidgets.QLabel(u'Passen Sie die Geschwindigkeit der Kamera an\n\n ← langsame Einstellung der Kamerageschwindigkeit →')

Dem Rasterlayout wurden Beschriftungen hinzugefügt. Wenn Sie Japanisch wie "u'character" verwenden, stellen Sie ** u ** voran. Sie können eine neue Zeile mit \ n beginnen.

        labelWidget.setAlignment(Qt.AlignCenter)

Platzieren Sie das erstellte Etiketten-Widget in der Mitte.

        layout.addWidget(labelWidget,0,0,1,-1)

Beschriftungs-Widget-Rasterlayout 0. Zeile, 0. Spalte, 1. Zeilenlänge, ** - 1 Spaltenlänge ** Wenn Sie es vom angegebenen Speicherort bis zum Ende verwenden möchten, verwenden Sie ** -1 **.

grid_explain.jpg Auf diese Weise kann festgelegt werden, von welcher Position in der Zeile oder Spalte aus wie lange es dauert.

        #Widget wählen
        self.camDial = QtWidgets.QDial()
        self.camDial.setRange(0, 100)
        self.camDial.setValue(50)
        self.camDial.setNotchesVisible(True)
        self.camDial.sliderReleased.connect(self.setCamSpeed)
        layout.addWidget(self.camDial,1,0,1,-1)

Erstellen Sie ein Wähl-Widget. Dieses Mal werden "self.camDial" und "self" hinzugefügt, da ich den numerischen Wert von einer anderen Stelle abrufen möchte. Geben Sie den Bereich von 0 bis 100 an. Der Standardwert wurde auf 50 geändert. Fügen Sie mit setNotchesVisible eine Skala hinzu. Mit self.camDial.sliderReleased.connect (self.setCamSpeed), Stellen Sie self.setCamSpeed ein, das ausgeführt werden soll, wenn die Maustaste losgelassen wird.

        #Überprüfen Sie den Super-Slow-Modus
        self.checkWidget = QtWidgets.QCheckBox(u'Super langsam')
        self.checkWidget.setChecked(False)
        self.checkWidget.stateChanged.connect(self.setCamSpeed)
        layout.addWidget(self.checkWidget,2,0)

Erstellen Sie ein Scheck-Widget. Geben Sie an, dass die Standardeinstellung deaktiviert ist und dass "self.setCamSpeed" ausgeführt wird, wenn der aktivierte Status geändert wird. Das Layout ist in der 2. Zeile und 0. Spalte angeordnet. Wenn beide Längen 1 sind, können Sie es leer lassen.

        #Kombinationsfeld für das Kamera-Tool
        setCamLabel = QtWidgets.QLabel('set Camera tool:')
        setCamLabel.setAlignment(Qt.AlignRight)
        layout.addWidget(setCamLabel,3,0)
        selCamItem = QtWidgets.QComboBox(self)
        selCamItem.addItem('tumble')
        selCamItem.addItem('track')
        selCamItem.addItem('dolly')
        selCamItem.addItem('boxZoomSuper')
        selCamItem.addItem('roll')
        selCamItem.addItem('yawPitch')
        selCamItem.activated[str].connect(self.setTool)
        layout.addWidget(selCamItem,3,1)

selCamItem = QtWidgets.QComboBox (self) Erstellen Sie ein Kombinationsfeld. Fügen Sie mit addItem mehrere Kamera-Tool-Elemente hinzu. Ich möchte den Namen so verwenden, wie er ist, damit er der Beschreibung von Mayas Kamera-Tool entspricht. selCamItem.activated [str] .connect (self.setTool) Wenn sich die Aktivität ändert Führen Sie dies aus, indem Sie ** string ** von addItem an self.setTool übergeben.

        #Reset-Knopf
        resetButton = QtWidgets.QPushButton(u'zurücksetzen')
        resetButton.clicked.connect(self.resetCamSpeed)
        layout.addWidget(resetButton,4,0,1,-1)

Zurücksetzen-Schaltfläche erstellen. Stellen Sie die Betriebseinstellungen und das Layout auf die gleiche Weise wie andere ein.

Damit ist die Erstellung der Benutzeroberfläche abgeschlossen.

Erstellen Sie Verhalten beim Bearbeiten der Benutzeroberfläche

Erstellen Sie den Operationsinhalt von ** ~ .connect **, der beim Erstellen der Benutzeroberfläche angezeigt wurde.

    #Kamerageschwindigkeit eingestellt
    def setCamSpeed(self):
        #Geschwindigkeitszahlen berechnen
        value = float(self.camDial.value()) **3*0.0000072+0.1
        if self.checkWidget.isChecked():
            value = value /10

        #Stellen Sie den berechneten Wert ein
        cmds.tumbleCtx( 'tumbleContext'             ,e=True ,ts=value)
        cmds.trackCtx(  'trackContext'              ,e=True ,ts=value)
        cmds.dollyCtx(  'dollyContext'              ,e=True ,s =value)
        cmds.boxZoomCtx('boxZoomContext'            ,e=True ,zs=value)
        cmds.rollCtx(   'rollContext'               ,e=True ,rs=value)
        cmds.orbitCtx(  'azimuthElevationContext'   ,e=True ,orbitScale=value)
        cmds.orbitCtx(  'yawPitchContext'           ,e=True ,orbitScale=value)

        #Zeigen Sie, was Sie eingestellt haben
        print ( '# Camera speed is '+str(value)+' !\n'),

Holen Sie sich den Status des Wähl- und Kontrollkästchens. Reflektieren Sie den berechneten Wert in jedem Kamera-Tool.

value = float (self.camDial.value ()) ** 3 * 0.0000072 + 0.1 Vom Wählwert zum Kamerageschwindigkeitswert konvertieren. Warum ist es so eine seltsame Formel, aber als ich sie so einstellte, dass sie genau richtig funktionierte, wurde es so.

if ~ reduziert den ** Wert ** auf 1/10, wenn der super langsame Modus aktiviert ist.

# Stellen Sie den berechneten Wert unten ein Reflektieren Sie den berechneten Wert im Wert jedes Kamera-Tools Der Grund, warum viel Rand verschwendet wird, besteht darin, die Zeilen auszurichten und die Sichtbarkeit zu verbessern. Es scheint, dass PEP8 nicht empfohlen wird, aber ich wage es, es zu ignorieren. Wie ist es eigentlich

print ('hogehoge'), Die letzten **, (Komma) ** werden zur Anzeige in Mayas Befehlszeile hinzugefügt. Weil Warnungen farbig und etwas überwältigend sind. Im Moment ist es ein Rätsel, warum es in der Kommandozeile mit einem Komma angezeigt werden kann. Ich frage mich, ob es eine Maya-Spezifikation ist.

    #Kamera-Toolset
    def setTool(self, selectTool):
        cmds.setToolTo('%sContext' %(selectTool))
        print ( 'Set %s Tool !\n' %(selectTool)),

** [str] ** empfangen von selCamItem.activated [str] .connect (self.setTool), cmds.setToolTo ('% sContext'% (selectTool)) Wechseln Sie mit diesem Befehl.

% s ersetzt% (Honyara) Beispiel: '%sContext' %('tumble')'tumbleContext'

    #Kamerageschwindigkeit zurückgesetzt
    def resetCamSpeed(self):
        #Setzen Sie den Wert jeder Kamera auf den Standardwert zurück
        cmds.tumbleCtx( 'tumbleContext'             ,e=True ,ts=1)
        cmds.trackCtx(  'trackContext'              ,e=True ,ts=1)
        cmds.dollyCtx(  'dollyContext'              ,e=True ,s =1)
        cmds.boxZoomCtx('boxZoomContext'            ,e=True ,zs=1) 
        cmds.rollCtx(   'rollContext'               ,e=True ,rs=1)
        cmds.orbitCtx(  'azimuthElevationContext'   ,e=True ,orbitScale=1)
        cmds.orbitCtx(  'yawPitchContext'           ,e=True ,orbitScale=1)
        self.camDial.setValue(50)
        self.checkWidget.setChecked(False)
        print ( '# Camera speed is Default !\n'),

Stellen Sie die Standardeinstellungen der Kamera und der Benutzeroberfläche wieder her.

Mit dem oben genannten wurde der Vorgang beim Bedienen des Widgets erstellt.

Ein Fenster erstellen

class MainWindow(MayaQWidgetBaseMixin, QtWidgets.QMainWindow):
    def __init__(self):
        #Rufen Sie die übergeordnete Methode auf
        super(MainWindow, self).__init__()

        #Geben Sie den Namen und die Größe des Fensters an
        self.setWindowTitle('Camera Speed editor')
        self.resize(200, 250)

        #Instanz-Widget und im Fenster platzieren
        widget = Widget()
        self.setCentralWidget(widget)

Vererbung von ** MayaQWidgetBaseMixin ** und ** QtWidgets.QMainWindow ** ** MayaQWidgetBaseMixin ** ist eine Funktion, die verhindert, dass das Fenster unter das Hauptfenster von Maya fällt. Früher habe ich Shiboken usw. verwendet, aber es fühlt sich gut an, viel einfacher zu sein.

Neu! Eltern-Kind-Beziehung des Maya-Fensters MayaQWidgetBaseMixin!

Geben Sie den Fenstertitel und die Fenstergröße an. Platzieren Sie den zuvor hergestellten Jet in der Mitte des Fensters.

    def closeEvent(self, event):
        #Führen Sie bei geschlossenem Fenster ein Zurücksetzen der Kamerageschwindigkeit durch
        widget = Widget()
        widget.resetCamSpeed()

Setzen Sie die Kamerageschwindigkeit zurück, wenn das Fenster geschlossen ist. Sie können def closeEvent (self, event): verwenden, um zusätzliches Verhalten hinzuzufügen, wenn das Fenster geschlossen wird.

Jetzt haben Sie die Benutzeroberfläche und die Hauptfunktionen erstellt.

Anzeigefenster

def main():
    #Anzeigefenster
    window = MainWindow()
    window.show()

Wenn Sie main () und den Befehl drücken, wird ein Fenster angezeigt und Sie können das Programm ausführen.

Verhalten während der Hauptausführung

#Verarbeitung beim Aufruf von main
if __name__ == "__main__":
    main()

Dies ist auch eine magische Sache. Führen Sie das Programm beim Importieren nicht aus. Wenn Sie den gesamten Code kopieren, in den Skripteditor einfügen und ausführen, wird das Programm gestartet.

[Python] if name == Was ist '__ main__':?

abschließend

Zuerst dachte ich, es geht darum, Notizen zu schreiben, aber es ist ziemlich lang geworden. Wenn ich etwas hinzufüge, das ich beim Schreiben an bestimmten Stellen nicht verstehe, ist es so.

Es scheint gut für mich, einen solchen Artikel jedes Mal zu hinterlassen, wenn ich ein Werkzeug schreibe. Schließlich denke ich, dass man lernen kann, indem man unterrichtet → versucht → lehrt.

Es mag viele Orte geben, die nicht erreichbar sind, aber bitte vergib mir. Ich würde mich freuen, wenn Sie mir sagen könnten, ob es Fehler gibt.

Referenzliste

Unten ist der Site-Link, den ich als Referenz verwendet habe.

Name des Zeichencodes "Are" am Anfang des Satzes in Python (so etwas wie UTF-8) Einführung in Python-Module und Importe von [Abbildung] Was ist Objektorientierung? (Bedeutung der Klassenmethodeninstanz) Python selbst und init verstehen Was ist Python selbst? Erläuterung der Verwendung und Vorsichtsmaßnahmen Grundlegendes zu [Python-Codierungsstandards] PEP8 [Python] Class Inheritance (super) Verwendung der Super () - Funktion von Python Neu! Eltern-Kind-Beziehung des Maya-Fensters MayaQWidgetBaseMixin! [Python] if name == Was ist '__ main__':?

Recommended Posts

[Maya Python] Zerquetsche den Inhalt des Skripts 1 ~ Camera Speed Editor
[Maya Python] Crush den Inhalt des Skripts 2 ~ Liste Notizen
[Maya Python] Crush den Inhalt des Skripts 3 ~ Liste unbekannter Plugins
Vorlage des Python-Skripts zum Lesen des Inhalts der Datei
Python-Skript, das den Inhalt zweier Verzeichnisse vergleicht
Holen Sie sich den Inhalt von Git Diff aus Python
Der Inhalt des Python-Tutorials (Kapitel 5) ist in einem Aufzählungszeichen zusammengefasst.
Der Inhalt des Python-Tutorials (Kapitel 4) ist in einem Aufzählungszeichen zusammengefasst.
Der Inhalt des Python-Tutorials (Kapitel 10) ist in einem Aufzählungszeichen zusammengefasst.
Vergleichen Sie die Geschwindigkeit von Python Append und Map
Der Inhalt des Python-Tutorials (Kapitel 6) ist in einem Aufzählungszeichen zusammengefasst.
Der Inhalt des Python-Tutorials (Kapitel 3) ist in einem Aufzählungszeichen zusammengefasst.
der Zen von Python
Holen Sie sich den Rückkehrcode eines Python-Skripts von bat
Den Inhalt der Daten in Python nicht kennen
python3 Messen Sie die Verarbeitungsgeschwindigkeit.
Auf dem Weg zum Ruhestand von Python2
Über die Funktionen von Python
Simulation des Inhalts der Brieftasche
Die Kraft der Pandas: Python
Ich habe die Geschwindigkeit von Hash mit Topaz, Ruby und Python verglichen
Verarbeiten Sie den Inhalt der Datei der Reihe nach mit einem Shell-Skript
[Python, Ruby] Selen-Holen Sie sich Webseiteninhalte mit Webdriver
Geben Sie den Inhalt von ~ .xlsx im Ordner mit Python in HTML aus
[Python] Ein Programm, das den Inhalt der Liste nach links dreht
Einfache Verschlüsselung von Dateiinhalten (Python)
[Python] Der Stolperstein des Imports
Erster Python 3 ~ Der Beginn der Wiederholung ~
[Python] [Inhaltsverzeichnis Links] Python-Programmierung
Verstehen Sie den Inhalt der sklearn-Pipeline
Existenz aus Sicht von Python
pyenv-change die Python-Version von virtualenv
Holen Sie sich den Skriptpfad in Python
Siehe den Inhalt von Kumantic Segumantion
Debuggen Sie das Skript mit Sakura Editor
[Python] Die potenzielle Feldplanung von Python Robotics verstehen
Überprüfung der Grundlagen von Python (FizzBuzz)
Geschwindigkeitsvergleich der Python-XML-Perspektive
Erste Schritte mit Python3
Informationen zur Grundlagenliste der Python-Grundlagen
Lernen Sie die Grundlagen von Python ① Grundlegende Anfänger
Ich habe die numerische Berechnung von Python durch Rust ersetzt und die Geschwindigkeit verglichen
[Einführung in Python] So sortieren Sie den Inhalt einer Liste effizient mit Listensortierung
Ruft den Rückgabewert eines externen Shell-Skripts (ls) mit python3 ab
Ich habe die Geschwindigkeit der Listeneinschlussnotation für und während mit Python2.7 gemessen.
Ich habe den Inhalt des Docker-Volumes überprüft
Ändern Sie die Länge der Python-CSV-Zeichenfolgen
Skript zum Ändern der Beschreibung von Fasta
Führen Sie das Python-Skript mit TS-220 cron aus
Übergeben Sie den Pfad des importierten Python-Moduls
Notizen vom Anfang von Python 1 lernen
Überprüfen Sie die Existenz der Datei mit Python
Informationen zur virtuellen Umgebung von Python Version 3.7
[Python3] Schreiben Sie das Codeobjekt der Funktion neu
Ich kannte die Grundlagen von Python nicht